KR20170124839A - Method and system for dividing digital content for fixed-length block encryption - Google Patents

Method and system for dividing digital content for fixed-length block encryption Download PDF

Info

Publication number
KR20170124839A
KR20170124839A KR1020160054776A KR20160054776A KR20170124839A KR 20170124839 A KR20170124839 A KR 20170124839A KR 1020160054776 A KR1020160054776 A KR 1020160054776A KR 20160054776 A KR20160054776 A KR 20160054776A KR 20170124839 A KR20170124839 A KR 20170124839A
Authority
KR
South Korea
Prior art keywords
block
gop
content
size
fixed size
Prior art date
Application number
KR1020160054776A
Other languages
Korean (ko)
Inventor
김장호
이재웅
이정상
권주호
김종주
송정원
송창훈
문현도
안재철
신현붕
Original Assignee
네이버 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 네이버 주식회사 filed Critical 네이버 주식회사
Priority to KR1020160054776A priority Critical patent/KR20170124839A/en
Publication of KR20170124839A publication Critical patent/KR20170124839A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8358Generation of protective data, e.g. certificates involving watermark
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2541Rights Management
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44236Monitoring of piracy processes or activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Virology (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Disclosed are a method and a system for dividing digital content for fixed-length block encryption. According to embodiments of the present invention, through the content division method, digital content can be encrypted in a fixed-length block without damaging a group of pictures (GOP) in the digital content such as a video. The content division method comprises the steps of: checking digital content; and dividing the digital content into a plurality of content blocks having a fixed length.

Description

고정 크기 블록 암호화를 위한 디지털 컨텐츠의 분할 방법 및 시스템{METHOD AND SYSTEM FOR DIVIDING DIGITAL CONTENT FOR FIXED-LENGTH BLOCK ENCRYPTION}[0001] METHOD AND SYSTEM FOR DIVIDING DIGITAL CONTENT FOR FIXED-LENGTH BLOCK ENCRYPTION [0002]

아래의 설명은 고정 크기 블록 암호화를 위한 디지털 컨텐츠의 분할 방법 및 시스템에 관한 것이다.The following description relates to a method and system for partitioning digital content for fixed size block encryption.

디지털 워터마킹(watermarking)이란 디지털 컨텐츠에 지각적으로 인지되지 않는 특정마크(이하 '워터마크')를 은닉하는 기술로, 예를 들어 한국공개특허 제10-2011-0101577호는 접근 불가능 컨텐츠를 위한 오버레이채널을 이용한 동영상 워터마킹 시스템 및 그 방법에 대해 개시하고 있다.Digital watermarking is a technique for concealing a specific mark (hereinafter referred to as a " watermark ") that is not perceptually recognized in digital contents. For example, Korean Patent Application No. 10-2011-0101577 discloses a technique Discloses a video watermarking system using an overlay channel and a method thereof.

한편, 서버-클라이언트 환경에서, 동영상과 같은 디지털 컨텐츠는 스트리밍이나 다운로드를 통해 서버에서 클라이언트로 제공될 수 있다. 이때, 스트리밍은 서버에서 디지털 컨텐츠를 복수의 조각난 파일들로 관리하고, 스트리밍 프로토콜에 따라 복수의 파일들을 클라이언트로 순차적으로 전송함에 따라 클라이언트가 전송되는 파일들을 재생하는 방식으로 디지털 컨텐츠를 클라이언트로 제공된다. 이러한 스트리밍 방식으로 디지털 컨텐츠를 제공하는 종래기술에서는 서로 다른 워터마크가 삽입된 파일들의 조합을 통해 사용자 각각에게 제공되는 디지털 컨텐츠를 사용자별로 식별할 수 있게 된다. 이때, 스트리밍 방식에서는 클라이언트가 현 시점에서 디지털 컨텐츠의 재생이 가능한 데이터만 수신할 수 있다면 별다른 문제가 없기 때문에 다운로드 속도에 대한 이슈가 크지 않다.Meanwhile, in a server-client environment, digital contents such as moving images can be provided from a server to a client through streaming or downloading. At this time, the streaming manages the digital contents as a plurality of fragmented files in the server, and sequentially transmits the plurality of files to the client according to the streaming protocol, so that the digital contents are provided to the clients in such a manner that the clients reproduce the transferred files . In the conventional technique of providing digital contents by such a streaming method, digital contents provided to each user can be identified for each user through a combination of files having different watermarks inserted therein. At this time, in the streaming method, if the client can only receive data capable of reproducing digital contents at present, there is not a problem in the download speed.

반면, 디지털 컨텐츠의 다운로드 방식에서는 디지털 컨텐츠에 대한 완성된 하나의 파일이 클라이언트에 저장되어야 한다. 따라서 디지털 컨텐츠의 다운로드 방식에서는 클라이언트가 전체 파일을 최대한 빠르게 다운로드 받아야 한다는 다운로드 속도에 대한 이슈가 존재한다. 예를 들어, 재생 시간이 1시간인 동영상을 고려할 수 있다. 이때 스트리밍 방식으로 동영상을 제공하는 경우에는 재생 시간인 1시간 이내에서 동영상의 재생이 끊기지 않는 수준의 속도로 파일들을 제공하면 되는 반면, 다운로드 방식에서는 재생 시간이 1시간인 동영상의 전체 파일을 가능한 한 빠르게 제공해야 한다.On the other hand, in the digital content downloading method, a completed file for the digital contents must be stored in the client. Therefore, in the digital contents downloading method, there is a problem about the download speed in which the client must download the entire file as quickly as possible. For example, a video having a playback time of 1 hour may be considered. In this case, when a video is provided in a streaming manner, it is necessary to provide the files at a rate that does not cause the video to be reproduced within 1 hour of the playback time. On the other hand, in the downloading method, You must provide it quickly.

또한, 동영상과 같은 디지털 컨텐츠는 일반적으로 다수의 프레임들이 모여서 묶인 복수의 GOP(Group of Pictures)로 구성된다. 이러한 GOP는 재생 가능한 최소 단위로 사용되며, 프레임들간의 선후 연관관계를 갖고 있기 때문에 GOP가 훼손되거나 중간에 끊기면 영상 자체가 깨지게 된다. 따라서 일반적으로 DRM(Digital Rights Management)을 이용하여 이러한 디지털 컨텐츠를 암호화할 때는 상술한 이유로 인해 GOP 단위로 암호화를 수행한다.In addition, digital contents such as moving pictures are generally composed of a plurality of GOPs (Group of Pictures) in which a plurality of frames are grouped together. Such a GOP is used as a minimum unit that can be reproduced. Since the GOP has a posterior relationship between frames, if the GOP is damaged or interrupted, the video itself is broken. Therefore, in general, when encrypting such digital contents using DRM (Digital Rights Management), encryption is performed in units of GOP because of the above reasons.

그러나, 특별한 이유나 요구사항으로 인해, GOP 단위의 암호화가 아닌 고정 크기(fixed-length)의 블록으로 암호화를 진행해야 할 필요성이 존재한다. GOP는 각각의 크기가 서로 다르기 때문에 고정 크기의 블록으로 암호화를 진행하는 경우 GOP가 손상되는 문제점이 있다.However, due to a particular reason or requirement, there is a need to encrypt with fixed-length blocks rather than GOP-based encryption. Since the GOPs are different in size from each other, there is a problem that the GOP is damaged when encryption is performed with a fixed size block.

서버-클라이언트 환경에서 사용자 고유 식별자가 은닉된 디지털 컨텐츠를 다운로드 방식으로 빠르게 제공할 수 있는 방법 및 시스템을 제공한다.The present invention provides a method and system for quickly providing a digital content that is hidden by a user unique identifier in a server-client environment in a downloading manner.

동영상과 같은 디지털 컨텐츠에서 GOP(Group of Pictures)를 훼손하지 않으면서도 디지털 컨텐츠를 고정 크기의 블록으로 암호화할 수 있는 방법 및 시스템을 제공한다.There is provided a method and system for encrypting digital contents into a fixed size block without damaging a group of pictures (GOP) in digital contents such as moving pictures.

컨텐츠 분할 방법에 있어서, 복수의 GOP(Group of Pictures) 블록으로 구성된 비디오 데이터와 오디오 데이터를 포함하는 디지털 컨텐츠를 확인하는 단계; 및 상기 디지털 컨텐츠를 고정 크기(fixed-length)를 갖는 복수의 컨텐츠 블록들로 분할하는 단계를 포함하고, 상기 복수의 GOP 블록 각각은 상기 고정 크기 이하의 크기를 갖고, 상기 분할하는 단계는, 상기 복수의 GOP 블록 중 제1 GOP 블록의 크기가 상기 고정 크기 미만인 경우, 상기 제1 GOP 블록에 상기 오디오 데이터의 제1 부분을 결합하여 상기 고정 크기의 제1 컨텐츠 블록을 생성하는 것을 특징으로 하는 컨텐츠 분할 방법을 제공한다.A content dividing method comprising: checking digital contents including video data and audio data composed of a plurality of GOP (Group of Pictures) blocks; And dividing the digital content into a plurality of content blocks having a fixed-length, wherein each of the plurality of GOP blocks has a size equal to or less than the fixed size, Wherein the first content block is generated by combining the first portion of the audio data with the first GOP block when the size of the first GOP block is less than the fixed size, Provides a partitioning method.

컴퓨터로 구현된 컨텐츠 분할 시스템에 있어서, 상기 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 복수의 GOP(Group of Pictures) 블록으로 구성된 비디오 데이터와 오디오 데이터를 포함하는 디지털 컨텐츠를 확인하고, 상기 디지털 컨텐츠를 고정 크기(fixed-length)를 갖는 복수의 컨텐츠 블록들로 분할하며, 상기 복수의 GOP 블록 각각은 상기 고정 크기 이하의 크기를 갖고, 상기 적어도 하나의 프로세서는, 상기 디지털 컨텐츠를 분할하기 위해, 상기 복수의 GOP 블록 중 제1 GOP 블록의 크기가 상기 고정 크기 미만인 경우, 상기 제1 GOP 블록에 상기 오디오 데이터의 제1 부분을 결합하여 상기 고정 크기의 제1 컨텐츠 블록을 생성하는 것을 특징으로 하는 컨텐츠 분할 시스템을 제공한다.A computer-implemented content segmentation system, comprising: at least one processor implemented to execute instructions readable by the computer, the at least one processor comprising: video data comprised of a plurality of Group of Pictures (GOP) blocks; Wherein the digital content is divided into a plurality of content blocks having a fixed-length, each of the plurality of GOP blocks having a size equal to or less than the fixed size, Wherein the at least one processor is configured to combine the first portion of the audio data with the first GOP block to divide the digital content into a plurality of GOP blocks if the size of the first GOP block is less than the fixed size, And a first content block having a fixed size is generated. .

서버-클라이언트 환경에서 사용자 고유 식별자가 은닉된 디지털 컨텐츠를 다운로드 방식으로 빠르게 제공할 수 있다. It is possible to quickly provide the digital content that is hidden by the user unique identifier in the server-client environment as a download method.

동영상과 같은 디지털 컨텐츠에서 GOP(Group of Pictures)를 훼손하지 않으면서도 디지털 컨텐츠를 고정 크기의 블록으로 암호화할 수 있다.Digital content can be encrypted into a fixed size block without compromising the GOP (Group of Pictures) in digital content such as video.

도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 있어서, 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 일실시예에 있어서, 서버의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이다.
도 4는 본 발명의 일실시예에 따른 서버가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
도 5는 본 발명의 일실시예에 있어서, 전자 기기의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이다.
도 6은 본 발명의 일실시예에 따른 전자 기기가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
도 7은 본 발명의 일실시예에 있어서, 서로 다른 코드값이 삽입된 복수의 복사본들의 예를 도시한 도면이다.
도 8은 본 발명의 일실시예에 있어서, 사용자별로 구성된 가상 파일의 예들을 도시한 도면이다.
도 9는 본 발명의 일실시예에 있어서, 동일한 코드값의 연속된 조각들을 병합하는 예를 도시한 도면이다.
도 10은 본 발명의 일실시예에 있어서, 사용자별 옵셋 정보의 예를 도시한 도면이다.
도 11은 본 발명의 일실시예에 있어서, 서버의 프로세서가 포함할 수 있는 구성요소의 다른 예를 도시한 블록도이다.
도 12는 본 발명의 일실시예에 따른 서버가 수행할 수 있는 방법의 다른 예를 도시한 흐름도이다.
도 13은 일반적인 MP4 컨텐츠의 예를 도시한 도면이다.
도 14는 본 발명의 일실시예에 있어서, 디지털 컨텐츠의 분할 예를 도시한 도면이다.
1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.
2 is a block diagram illustrating an internal configuration of an electronic device and a server according to an embodiment of the present invention.
3 is a block diagram illustrating an example of components that a processor of a server may include in one embodiment of the present invention.
4 is a flowchart illustrating an example of a method that a server according to an embodiment of the present invention can perform.
5 is a block diagram illustrating an example of components that a processor of an electronic device may include in one embodiment of the present invention.
6 is a flowchart showing an example of a method that an electronic apparatus according to an embodiment of the present invention can perform.
FIG. 7 is a diagram illustrating an example of a plurality of copies in which different code values are inserted, according to an exemplary embodiment of the present invention.
8 is a diagram illustrating examples of a virtual file configured for each user in an embodiment of the present invention.
Figure 9 is an illustration of an example of merging successive fragments of the same code value in one embodiment of the present invention.
10 is a diagram illustrating an example of offset information per user in an embodiment of the present invention.
11 is a block diagram illustrating another example of components that a processor of a server may include in one embodiment of the present invention.
12 is a flowchart illustrating another example of a method that a server according to an embodiment of the present invention can perform.
13 is a diagram showing an example of general MP4 contents.
14 is a diagram showing an example of division of digital contents in an embodiment of the present invention.

이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다.1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention. 1 shows an example in which a plurality of electronic devices 110, 120, 130, 140, a plurality of servers 150, 160, and a network 170 are included. 1, the number of electronic devices and the number of servers are not limited to those shown in FIG.

복수의 전자 기기들(110, 120, 130, 140)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 전자 기기들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다. 일례로 도 1에서는 전자 기기 1(110)의 예로 스마트폰의 형상을 나타내고 있으나, 본 발명의 실시예들에서는 실질적으로 무선 또는 유선 통신 방식을 이용하여 네트워크(170)를 통해 다른 전자 기기들(120, 130, 140) 및/또는 서버(150, 160)와 통신할 수 있는 다양한 기기들 중 하나를 의미할 수 있다.The plurality of electronic devices 110, 120, 130, 140 may be a fixed terminal implemented as a computer device or a mobile terminal. Examples of the plurality of electronic devices 110, 120, 130 and 140 include a smart phone, a mobile phone, a navigation device, a computer, a notebook, a digital broadcast terminal, a PDA (Personal Digital Assistants) ), And tablet PCs. For example, although FIG. 1 illustrates the shape of a smartphone as an example of the electronic device 110, in embodiments of the present invention, other electronic devices 120 (for example, , 130, 140) and / or servers 150, 160. In addition,

통신 방식은 제한되지 않으며, 네트워크(170)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(170)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(170)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.The communication method is not limited, and may include a communication method using a communication network (for example, a mobile communication network, a wired Internet, a wireless Internet, a broadcasting network) that the network 170 may include, as well as a short-range wireless communication between the devices. For example, the network 170 may be a personal area network (LAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN) , A network such as the Internet, and the like. The network 170 may also include any one or more of a network topology including a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree or a hierarchical network, It is not limited.

서버(150, 160) 각각은 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다.Each of the servers 150 and 160 is a computer device or a plurality of computers that communicate with a plurality of electronic devices 110, 120, 130 and 140 through a network 170 to provide commands, codes, files, Lt; / RTI > devices.

예를 들어, 서버(160)는 메신저 기능을 위한 어플리케이션이나 디지털 컨텐츠의 재생을 위한 어플리케이션의 설치 파일을 복수의 전자 기기들(110, 120, 130, 140)로 배포하는 파일 배포 시스템일 수 있다. 이 경우, 서버(150)는 어플리케이션이 설치된 클라이언트들에게 디지털 컨텐츠를 제공하기 위한 컨텐츠 제공 시스템일 수 있다. 예를 들어, 전자 기기 1(110)의 사용자는 전자 기기 1(110)에 설치된 어플리케이션을 이용하여 네트워크(170)를 통해 서버(150)에 접속할 수 있고, 서버(150)로 디지털 컨텐츠의 다운로드를 요청할 수 있다. 이 경우, 서버(150)는 요청된 디지털 컨텐츠를 전자 기기 1(110)로 전송할 수 있다.For example, the server 160 may be a file distribution system that distributes an application for a messenger function or an application installation file for playing digital contents to a plurality of electronic devices 110, 120, 130, and 140. In this case, the server 150 may be a content providing system for providing digital contents to the clients installed with the application. For example, the user of the electronic device 1 (110) can access the server (150) via the network (170) using the application installed in the electronic device (110) Can be requested. In this case, the server 150 may transmit the requested digital content to the electronic device 1 (110).

도 2는 본 발명의 일실시예에 있어서, 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다. 도 2에서는 전자 기기에 대한 예로서 전자 기기 1(110), 그리고 서버(150)의 내부 구성을 설명한다. 다른 전자 기기들(120, 130, 140)이나 서버(160) 역시 동일한 또는 유사한 내부 구성을 가질 수 있다.2 is a block diagram illustrating an internal configuration of an electronic device and a server according to an embodiment of the present invention. 2 illustrates an internal configuration of the electronic device 1 (110) and the server 150 as an example of the electronic device. Other electronic devices 120, 130, 140 or server 160 may have the same or similar internal configurations.

전자 기기 1(110)과 서버(150)는 메모리(211, 221), 프로세서(212, 222), 통신 모듈(213, 223) 그리고 입출력 인터페이스(214, 224)를 포함할 수 있다. 메모리(211, 221)는 컴퓨터에서 판독 가능한 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 비소멸성 대용량 기록장치는 메모리(211, 221)와 분리되어 별도의 영구 저장 장치로서 포함될 수도 있다. 또한, 메모리(211, 221)에는 운영체제와 적어도 하나의 프로그램 코드(일례로 전자 기기 1(110)에 설치되어 구동되는 브라우저나 특정 서비스의 제공을 위해 전자 기기 1(110)에 설치된 어플리케이션 등을 위한 코드)가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(211, 221)와는 별도의 컴퓨터에서 판독 가능한 기록 매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록 매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록 매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록 매체가 아닌 통신 모듈(213, 223)을 통해 메모리(211, 221)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템(일례로 상술한 서버(160))이 네트워크(170)를 통해 제공하는 파일들에 의해 설치되는 프로그램(일례로 상술한 어플리케이션)에 기반하여 메모리(211, 221)에 로딩될 수 있다.The electronic device 1 110 and the server 150 may include memories 211 and 221, processors 212 and 222, communication modules 213 and 223 and input / output interfaces 214 and 224. The memories 211 and 221 may be a computer-readable recording medium and may include a permanent mass storage device such as a random access memory (RAM), a read only memory (ROM), and a disk drive. Here, the ROM and the non-decaying large capacity recording device may be included as separate permanent storage devices separately from the memories 211 and 221. [ The memory 211 and the memory 221 are provided with an operating system and at least one program code (for example, a program installed in the electronic device 1 (110) and used for a browser or an application installed in the electronic device 1 Code) can be stored. These software components may be loaded from a computer readable recording medium separate from the memories 211 and 221. [ Such a computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, a disk, a tape, a DVD / CD-ROM drive, and a memory card. In other embodiments, the software components may be loaded into memory 211, 221 via communication modules 213, 223 rather than a computer readable recording medium. For example, at least one program may be a program installed by a file distribution system (for example, the server 160 described above) that distributes installation files of developers or applications, May be loaded into the memory 211, 221 based on the application described above.

프로세서(212, 222)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(211, 221) 또는 통신 모듈(213, 223)에 의해 프로세서(212, 222)로 제공될 수 있다. 예를 들어 프로세서(212, 222)는 메모리(211, 221)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.Processors 212 and 222 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input / output operations. The instructions may be provided to the processors 212 and 222 by the memories 211 and 221 or the communication modules 213 and 223. For example, the processor 212, 222 may be configured to execute a command received in accordance with a program code stored in a recording device, such as the memory 211, 221.

통신 모듈(213, 223)은 네트워크(170)를 통해 전자 기기 1(110)과 서버(150)가 서로 통신하기 위한 기능을 제공할 수 있으며, 다른 전자 기기(일례로 전자 기기 2(120)) 또는 다른 서버(일례로 서버(160))와 통신하기 위한 기능을 제공할 수 있다. 일례로, 전자 기기 1(110)의 프로세서(212)가 메모리(211)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청(일례로 영상 통화 서비스를 위한 요청)이 통신 모듈(213)의 제어에 따라 네트워크(170)를 통해 서버(150)로 전달될 수 있다. 역으로, 서버(150)의 프로세서(222)의 제어에 따라 제공되는 제어 신호나 명령, 컨텐츠, 파일 등이 통신 모듈(223)과 네트워크(170)를 거쳐 전자 기기 1(110)의 통신 모듈(213)을 통해 전자 기기 1(110)로 수신될 수 있다. 예를 들어 통신 모듈(213)을 통해 수신된 서버(150)의 제어 신호나 명령 등은 프로세서(212)나 메모리(211)로 전달될 수 있고, 컨텐츠나 파일 등은 전자 기기 1(110)가 더 포함할 수 있는 저장 매체로 저장될 수 있다.The communication modules 213 and 223 may provide functions for the electronic device 1 110 and the server 150 to communicate with each other through the network 170 and may provide functions for communicating with other electronic devices (for example, the electronic device 2 120) Or to communicate with another server (e.g., server 160). For example, when the processor 212 of the electronic device 1 110 receives a request (for example, a request for a video call service) generated according to a program code stored in a recording device such as the memory 211, To the server 150 via the network 170 in accordance with the < / RTI > Conversely, control signals, commands, contents, files, and the like provided under the control of the processor 222 of the server 150 are transmitted to the communication module 223 of the electronic device 110 via the communication module 223 and the network 170 213 to the electronic device 1 (110). For example, control signals and commands of the server 150 received through the communication module 213 may be transmitted to the processor 212 or the memory 211, May be stored as a storage medium that may further include a < RTI ID = 0.0 >

입출력 인터페이스(214, 224)는 입출력 장치(215)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 어플리케이션의 통신 세션을 표시하기 위한 디스플레이와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(214)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 보다 구체적인 예로, 전자 기기 1(110)의 프로세서(212)는 메모리(211)에 로딩된 컴퓨터 프로그램의 명령을 처리함에 있어서 서버(150)나 전자 기기 2(120)가 제공하는 데이터를 이용하여 구성되는 서비스 화면이나 컨텐츠가 입출력 인터페이스(214)를 통해 디스플레이에 표시될 수 있다.The input / output interfaces 214 and 224 may be means for interfacing with the input / output device 215. For example, the input device may include a device such as a keyboard or a mouse, and the output device may include a device such as a display for displaying a communication session of the application. As another example, the input / output interface 214 may be a means for interfacing with a device having integrated functions for input and output, such as a touch screen. More specifically, the processor 212 of the electronic device 1 (110) uses the data provided by the server 150 or the electronic device 2 (120) in processing commands of the computer program loaded in the memory 211 A service screen or contents can be displayed on the display through the input / output interface 214. [

또한, 다른 실시예들에서 전자 기기 1(110) 및 서버(150)는 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 전자 기기 1(110)은 상술한 입출력 장치(215) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다. 보다 구체적인 예로, 전자 기기 1(110)이 스마트폰인 경우, 일반적으로 스마트폰이 포함하고 있는 가속도 센서나 자이로 센서, 카메라, 각종 물리적인 버튼, 터치패널을 이용한 버튼, 입출력 포트, 진동을 위한 진동기 등의 다양한 구성요소들이 전자 기기 1(110)에 더 포함되도록 구현될 수 있음을 알 수 있다.Also, in other embodiments, electronic device 1 110 and server 150 may include more components than the components of FIG. However, there is no need to clearly illustrate most prior art components. For example, electronic device 1 110 may be implemented to include at least a portion of input / output devices 215 described above, or may be implemented with other components such as a transceiver, Global Positioning System (GPS) module, camera, Elements. More specifically, when the electronic device 1 (110) is a smart phone, it may be an acceleration sensor, a gyro sensor, a camera, various physical buttons, buttons using a touch panel, input / output ports, It is to be understood that the present invention may be embodied in various forms without departing from the spirit or scope of the invention.

도 3은 본 발명의 일실시예에 있어서, 서버의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이고, 도 4는 본 발명의 일실시예에 따른 서버가 수행할 수 있는 방법의 예를 도시한 흐름도이다.FIG. 3 is a block diagram illustrating an example of a component that a processor of a server may include in an embodiment of the present invention. FIG. 4 is a block diagram of a method that a server can perform according to an embodiment of the present invention. Fig.

서버(150)는 본 발명의 일실시예에 따른 컨텐츠 제공 시스템을 구현할 수 있으며, 도 3에 도시된 바와 같이 서버(150)에 포함된 프로세서(222)는 구성요소들로서 컨텐츠 관리부(310), 송수신 제어부(320), 가상 파일 구성부(330) 및 정보 생성부(340)를 포함할 수 있다. 이러한 프로세서(222) 및 프로세서(222)의 구성요소들은 도 4의 컨텐츠 제공 방법이 포함하는 단계들(410 내지 480)을 수행하도록 서버(150)를 제어할 수 있다. 이때, 프로세서(222) 및 프로세서(222)의 구성요소들은 메모리(221)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(222)의 구성요소들은 서버(150)에 저장된 프로그램 코드가 제공하는 제어 명령에 따라 프로세서(222)에 의해 수행되는 프로세서(222)의 서로 다른 기능들(different functions)의 표현들일 수 있다. 예를 들어, 프로세서(222)가 상술한 제어 명령에 따라 디지털 컨텐츠를 관리하도록 서버(150)를 제어하는 프로세서(222)의 기능적 표현으로 컨텐츠 관리부(310)가 사용될 수 있다.As shown in FIG. 3, the processor 222 included in the server 150 includes components such as a content management unit 310, a transmission / reception unit A control unit 320, a virtual file construction unit 330, and an information generation unit 340. The components of the processor 222 and the processor 222 may control the server 150 to perform the steps 410 to 480 included in the content providing method of FIG. At this time, the components of the processor 222 and the processor 222 may be implemented to execute instructions according to the code of the operating system and the code of at least one program that the memory 221 contains. The components of processor 222 may be representations of different functions of processor 222 performed by processor 222 in accordance with control instructions provided by the program code stored in server 150 have. For example, the content manager 310 may be used as a functional representation of the processor 222 that controls the server 150 to allow the processor 222 to manage digital content in accordance with the control commands described above.

단계(410)에서 프로세서(222)는 서버(150)의 제어와 관련된 명령이 로딩된 메모리(221)로부터 필요한 명령을 읽어드릴 수 있다. 이 경우, 상기 읽어드린 명령은 프로세서(222)가 이후 설명될 단계들(420 내지 480)을 실행하도록 제어하기 위한 명령을 포함할 수 있다.At step 410 the processor 222 may read the necessary commands from the loaded memory 221 with instructions associated with the control of the server 150. [ In this case, the read command may include instructions for controlling the processor 222 to execute steps 420 to 480 to be described later.

단계(420)에서 컨텐츠 관리부(310)는 디지털 컨텐츠에 대해, 각각 서로 다른 코드값이 삽입된 복수의 복사본을 관리할 수 있다. 예를 들어, 컨텐츠 관리부(310)는 디지털 컨텐츠의 복수의 복사본들을 서버(150)의 스토리지(storage)에 저장 및 관리하도록 서버(150)를 제어할 수 있다. 이때, 복수의 복사본들에는 각각 서로 다른 코드값들이 워터마킹(watermarking) 기술을 이용하여 시청각적으로 인지할 수 없도록 삽입되어 있을 수 있다. 이러한 워터마킹 기술은 디지털-아날로그나 아날로그-디지털 변형, 사이즈 변환, 일부 영역 잘라내기 등과 같이 디지털 컨텐츠의 변형 시에도 워터마크의 검출이 가능하다는 특징을 갖고 있다. 여기서, 코드값을 어떻게 디지털 컨텐츠에 삽입하는 가에 대한 워터마킹 기술은 이미 잘 알려져 있는 관계로 구체적인 설명은 생략한다. 코드값은 하나의 숫자, '123', '456'과 같은 숫자의 조합, 알파벳과 같은 문자, 문자들의 조합, 문자와 숫자의 조합 등과 같이 필요에 따라 선택된 다양한 형태의 값으로 구성될 수 있다. 간단한 예로, '0'의 코드값이 삽입된 제1 복사본과 '1'의 코드값이 삽입된 제2 복사본이 하나의 디지털 컨텐츠에 대해 관리될 수 있다. In operation 420, the content management unit 310 may manage a plurality of copies of digital contents, each of which has a different code value inserted therein. For example, the content management unit 310 may control the server 150 to store and manage a plurality of copies of the digital content in the storage of the server 150. [ At this time, different code values may be embedded in a plurality of copies so that they can not be visually recognized using watermarking technology. Such a watermarking technique is characterized in that watermark detection is possible even when the digital content is deformed, such as digital-analogue or analog-digital transformation, size conversion, and partial region trimming. Here, the watermarking technique for inserting the code value into the digital content is already well known, and a detailed description thereof will be omitted. The code value can be composed of various types of values selected as needed, such as a number, a combination of numbers such as '123', '456', a letter such as an alphabet, a combination of characters, a combination of letters and numbers. As a simple example, a first copy in which a code value of '0' is inserted and a second copy in which a code value of '1' is inserted can be managed for one digital content.

단계(430)에서 송수신 제어부(320)는 디지털 컨텐츠에 대한 클라이언트의 다운로드 요청을 수신할 수 있다. 여기서, 클라이언트는 네트워크(170)를 통해 서버(150)에 접근하는 전자 기기 1(110)나 전자 기기 1(110)에 설치된 어플리케이션을 의미할 수 있다. 예를 들어, 사용자는 전자 기기 1(110)를 이용하여 서버(150)에 접근할 수 있고, 서버(150)가 제공하는 사용자 인터페이스(일례로, 서버(150)가 제공하는 웹페이지의 특정 링크)를 통해 디지털 컨텐츠의 다운로드를 서버(150)로 요청할 수 있다. 이 경우, 송수신 제어부(320)는 네트워크(170)를 통해 접근한 전자 기기 1(110)로부터 다운로드 요청 신호를 수신하도록 서버(150)를 제어할 수 있다.In step 430, the transmission / reception control unit 320 may receive a client download request for digital content. Here, the client may refer to an application installed in the electronic device 1 (110) or the electronic device 1 (110) accessing the server (150) through the network (170). For example, the user can access the server 150 using the electronic device 1 110, and the user can access the server 150 through the user interface provided by the server 150 (for example, To download the digital content to the server 150. In this case, the transmission / reception control unit 320 may control the server 150 to receive a download request signal from the electronic device 1 (110) accessed through the network (170).

단계(440)에서 가상 파일 구성부(330)는 디지털 컨텐츠에 대한 클라이언트의 다운로드 요청에 따라 서로 다른 코드값의 조합이 클라이언트와 연관하여 식별되는 사용자의 고유 식별자와 매칭되도록 복수의 복사본의 부분들을 조합하여 디지털 컨텐츠에 대한 가상 파일을 구성할 수 있다. 이때, 각각의 가상 파일을 구성하는 부분들은 서로 동일한 크기를 가질 수 있다. 또한, 이후 설명되는 조건에 따라 일부 부분들은 서로 병합될 수도 있다.In step 440, the virtual file construction unit 330 combines the portions of the plurality of copies so that the combination of the different code values is matched with the unique identifier of the user identified in association with the client, So that a virtual file for digital contents can be constructed. At this time, the parts constituting each virtual file may have the same size. Also, some portions may be merged with each other according to the conditions described below.

일실시예로, 가상 파일 구성부(330)는 서로 다른 코드값의 조합이 상기 가상 파일의 적어도 일부의 위치에서 상기 사용자의 고유 식별자에 대응하는 값을 갖도록 상기 복수의 복사본의 부분들을 조합할 수 있다. 예를 들어, 사용자의 고유 식별자를 2진 숫자열로 나타내었을 때의 값이 "010100010001"이라 가정한다. 이 경우, 가상 파일을 구성하기 위한 첫 번째 부분에는 2진 숫자열의 첫 번째 값인 '0'을 코드값으로 갖는 복사본의 첫 번째 조각이 이용될 수 있다. 또한, 가상 파일을 구성하기 위한 두 번째 부분에는 2진 숫자열의 두 번째 값인 '1'을 코드값으로 갖는 복사본의 두 번째 조각이 이용될 수 있으며, 이와 유사하게 가상 파일을 구성하기 위한 세 번째 부분에는 2진 숫자열의 세 번째 값인 '0'을 코드값으로 갖는 복사본의 세 번째 조각이 이용될 수 있다. 이때, 가상 파일은 2진 숫자열의 숫자의 개수만큼의 부분들로 구성될 수 있다. 또는, 가상 파일이 2진 숫자열의 숫자의 개수보다 더 많은 수의 부분들로 구성될 수도 있다. 예를 들어, 가상 파일은 2진 숫자열의 자리수의 배수의 부분들로 구성될 수도 있다. 이 경우, 2진 숫자열로 나타낸 고유 식별자가 반복적으로 활용될 수 있다. 또는, 가상 파일의 기설정된 부분의 코드값들이 사용자의 고유 식별자에 대응되도록 가상 파일이 생성될 수도 있다.In one embodiment, the virtual file constructor 330 may combine portions of the plurality of copies such that a combination of different code values has a value corresponding to the unique identifier of the user at a location of at least a portion of the virtual file have. For example, assume that the value when the user's unique identifier is represented by a binary string is "010100010001 ". In this case, the first piece of a copy having the code value of '0', which is the first value of the binary string, may be used in the first part for constituting the virtual file. Also, a second piece of the copy having a code value of '1', which is the second value of the binary string, can be used in the second part for constructing the virtual file, and similarly, a third piece , A third piece of the copy having a code value of '0', which is the third value of the binary string, may be used. At this time, the virtual file can be constituted by the number of parts of the number of the binary string. Alternatively, the virtual file may consist of a greater number of parts than the number of digits in the binary string of digits. For example, a pseudo file may consist of parts of a multiple of the digits of a binary string. In this case, a unique identifier represented by a binary string can be used repeatedly. Alternatively, a virtual file may be generated such that code values of a predetermined portion of the virtual file correspond to a unique identifier of the user.

다른 실시예로, 가상 파일 구성부(330)는 서로 다른 코드값을 조합하여 다운로드 요청에 대한 고유값을 생성하고, 고유값을 사용자의 고유 식별자와 매칭하여 관리할 수도 있다. 예를 들어, 가상 파일 구성부(330)는 가상 파일의 코드값들의 조합이 항상 유일한 값을 갖도록 가상 파일을 구성할 수 있다. 이때, 유일한 값인 고유값과 사용자의 고유 식별자를 매칭하여 저장 및 관리함으로써 가상 파일을 통해 사용자가 식별될 수 있다.In another embodiment, the virtual file construction unit 330 may combine different code values to generate a unique value for a download request, and may manage the unique value by matching with a unique identifier of the user. For example, the virtual file construction unit 330 may configure a virtual file such that a combination of code values of a virtual file always has a unique value. At this time, the unique value which is a unique value and the unique identifier of the user are matched and stored and managed, so that the user can be identified through the virtual file.

단계(450)에서 정보 생성부(340)는 구성된 가상 파일의 위치정보와 복수의 복사본에서 조합된 부분들 각각을 식별하기 위한 옵셋(offset) 정보를 생성할 수 있다. 위치정보는 클라이언트가 네트워크 상에서 가상 파일을 찾기 위한 위치에 대한 정보를 포함할 수 있으며, 일례로 가상 파일을 위해 생성된 유니폼 리소스 로케이터(Uniform Resource Locator, URL)를 포함할 수 있다.In operation 450, the information generating unit 340 may generate offset information for identifying the location information of the configured virtual file and each of the combined parts of the plurality of copies. The location information may include information about a location for a client to search for a virtual file on the network, and may include a uniform resource locator (URL) generated for a virtual file, for example.

옵셋 정보는 일실시예로, 사용자의 고유 식별자와 매칭된 부분들이 해당 복사본에서 어느 부분인가를 식별하기 위한 정보를 포함할 수 있다. 예를 들어, 복사본의 전체 바이트들 중 특정 바이트-범위(byte-range)를 통해 고유 식별자와 매칭된 부분들이 식별될 수 있다. 보다 구체적인 예로, 디지털 컨텐츠가 200 바이트의 크기를 갖는다고 가정할 수 있다. 이때, 옵셋 정보는 제1 복사본의 0-99 바이트-범위의 부분 및 제2 복사본의 100-199 바이트 범위의 부분 등과 같이 바이트-범위를 이용하여 사용자의 고유 식별자와 매칭된 부분들이 해당 복사본에서 어느 부분인가를 식별하기 위한 정보를 포함할 수 있다.The offset information may be, in one embodiment, information for identifying which part of the copy matches the unique identifier of the user. For example, portions that match a unique identifier may be identified through a particular byte-range of the total bytes of the copy. As a more specific example, it can be assumed that the digital content has a size of 200 bytes. At this time, the offset information includes a portion of the first copy that matches the unique identifier of the user using the byte-range, such as a portion of the range of the first copy and a portion of the range of 100-199 bytes of the second copy, And may include information for identifying the partial authorization.

옵셋 정보는 다른 실시예로, 청크 넘버(chunk number)를 포함하도록 구성될 수도 있다. 예를 들어, 복수의 복사본들 각각은 복수의 청크(chunk)들로 나뉘어 구분될 수 있다. 이때, 옵셋 정보는 사용자의 고유 식별자와 매칭된 부분들이 해당 복사본에서 어느 부분인가를 식별하기 위한 정보로서 해당 부분의 청크 넘버를 포함할 수 있다.The offset information may, in another embodiment, be configured to include a chunk number. For example, each of the plurality of copies may be divided into a plurality of chunks. At this time, the offset information may include a chunk number of the corresponding part as information for identifying which part of the copy matches the unique identifier of the user.

또한, 앞서 설명한 가상 파일 구성부(330)는 단계(440)에서 조합된 부분들 중 동일한 코드값을 가진 서로 연속된 부분들을 병합하여 하나의 부분으로 조합할 수도 있다. 예를 들어, '0'의 코드값을 가진 세 개의 조각들이 연속적으로 배치된 경우, 가상 파일 구성부(330)는 세 개의 조각을 '0'의 코드값을 가진 하나의 조각으로 병합할 수 있다. 이 경우, 옵셋 정보는 병합된 부분을 하나의 부분으로 식별하기 위한 정보를 포함할 수 있다. 예를 들어, '0'의 코드값을 가진 세 개의 조각들이 각각 '0-99', '100-199', '200-299'의 바이트-범위로 식별되는 경우, 병합된 하나의 조각은 '0-299'의 바이트-범위로 식별될 수 있다. 다시 말해, 동일한 코드값을 가진 서로 연속된 부분들을 병합하여 하나의 조각으로 전송함으로써, 전자 기기 1(110)이 한번에 다운로드하는 조각들을 최대한 크게 유지함으로써 조각들의 요청 수를 줄일 수 있어 다운로드 속도를 향상시킬 수 있다.In addition, the virtual file configuration unit 330 may combine successive portions having the same code value among the combined portions in Step 440 into a single portion. For example, if three pieces having a code value of '0' are arranged consecutively, the virtual file construction unit 330 may merge the three pieces into one piece having a code value of '0' . In this case, the offset information may include information for identifying the merged portion as one portion. For example, if three pieces with a code value of '0' are identified as byte-ranges of '0-99', '100-199', and '200-299', respectively, Quot; 0-299 " byte-range. In other words, by merging consecutive portions having the same code value and transferring them as one piece, the number of pieces of pieces can be reduced by keeping the pieces of electronic device 1 (110) to be downloaded at a time as large as possible, .

단계(460)에서 송수신 제어부(320)는 생성된 위치정보와 옵셋 정보를 클라이언트로 제공할 수 있다. 예를 들어 송수신 제어부(320)는 위치정보와 옵셋 정보를 포함하는 데이터를 네트워크(170)를 통해 전자 기기 1(110)로 전송하도록 서버(150)를 제어할 수 있다.In step 460, the transmission / reception control unit 320 may provide the generated location information and offset information to the client. For example, the transmission / reception control unit 320 may control the server 150 to transmit the data including the position information and the offset information to the electronic device 110 through the network 170.

단계(470)에서 송수신 제어부(330)는 클라이언트로부터 위치정보에 기반하고, 옵셋 정보를 포함하는 다운로드 요청을 수신할 수 있다. 예를 들어, 송수신 제어부(320)는 위치정보에 기반하여 네트워크(170)를 통해 접근하는 전자 기기 1(110)로부터 옵셋정보를 포함하는 다운로드 요청 신호를 수신하도록 서버(150)를 제어할 수 있다. 이때, 전자 기기 1(110)은 실제로는 복수의 복사본 파일들에 대해 일부분의 데이터를 요청하는 것이기 때문에 전자 기기 1(110)은 각각의 조각별로 다운로드를 요청할 수 있다. 따라서, 가상 파일이 포함하는 조각의 수만큼의 다운로드 요청이 발생할 수 있다. 앞서 설명한 바와 같이 동일한 코드값을 가진 서로 연속된 부분들은 병합되어 하나의 조각으로 전송될 수 있다. 따라서 이 경우에는 다운로드 요청의 수를 줄일 수 있어 다운로드 속도를 증가시킬 수 있다. In step 470, the transmission / reception control unit 330 may receive a download request based on the location information from the client and including offset information. For example, the transmission / reception control unit 320 may control the server 150 to receive a download request signal including offset information from the electronic device 1 (110) accessing via the network 170 based on the location information . At this time, since the electronic device 110 actually requests a part of data for a plurality of copy files, the electronic device 110 may request downloading for each piece. Accordingly, a number of download requests may be generated as many as the number of pieces included in the virtual file. As described above, successive portions having the same code value can be merged and transmitted as a single piece. Therefore, in this case, the number of download requests can be reduced and the download speed can be increased.

단계(480)에서 송수신 제어부(330)는 복수의 복사본에서 옵셋 정보에 대응하는 부분들을 위치정보를 통해 식별되는 가상 파일로서 클라이언트로 전송할 수 있다. 예를 들어, 서버(150)는 전자 기기 1(110)이 접근하는데 이용한 위치정보에 기반하여 가상 파일을 식별할 수 있으며, 다운로드 요청에 포함된 옵셋 정보를 이용하여 복수의 복사본들 각각에서 전자 기기 1(110)로 전송해야 할 부분들을 식별할 수 있다. 이때, 송수신 제어부(330)는 식별되는 복수의 복사본들의 각 부분들을 가상 파일로서 네트워크(170)를 통해 전자 기기 1(110)로 전송하도록 서버(150)를 제어할 수 있다.In step 480, the transmission / reception control unit 330 may transmit portions corresponding to the offset information from the plurality of copies to the client as a virtual file identified through the location information. For example, the server 150 can identify the virtual file based on the location information used by the electronic device 110 to access it, and can use the offset information included in the download request to identify, 1 (110). At this time, the transmission / reception control unit 330 may control the server 150 to transmit each part of the plurality of identified copies as a virtual file to the electronic device 1 (110) via the network (170).

전자 기기 1(110)로 전송된 가상 파일은 전자 기기 1(110)에 하나의 파일의 형태로 저장될 수 있으며, 전자 기기 1(110)에서 재생되거나 다른 장치로 전송될 수 있다. 이때, 가상 파일에는 전자 기기 1(110)의 사용자에 대한 고유 식별자를 인식하기 위한 정보가 포함되어 있기 때문에 해당 디지털 컨텐츠에 대한 소유권 증명이나 최초 유포자와 같은 사용자 추적이 가능해진다.The virtual file transferred to the electronic device 110 may be stored in the form of a file in the electronic device 110 and may be reproduced in the electronic device 110 or transferred to another device. At this time, since the virtual file includes information for recognizing the unique identifier of the user of the electronic device 1 (110), it is possible to prove ownership of the digital content and to track the user like the initial distributor.

도 5는 본 발명의 일실시예에 있어서, 전자 기기의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이고, 도 6은 본 발명의 일실시예에 따른 전자 기기가 수행할 수 있는 방법의 예를 도시한 흐름도이다.FIG. 5 is a block diagram illustrating an example of a component that a processor of an electronic device may include in an embodiment of the present invention. FIG. 6 is a block diagram of an electronic device according to an exemplary embodiment of the present invention Fig. 2 is a flowchart showing an example of a method. Fig.

전자 기기 1(110)은 본 발명의 일실시예에 따른 컨텐츠 제공 시스템을 구현할 수 있으며, 도 5에 도시된 바와 같이 전자 기기 1(110)에 포함된 프로세서(212)는 구성요소들로서 다운로드 요청부(510), 송수신 제어부(520) 및 재생 제어부(530)를 포함할 수 있다. 이러한 프로세서(212) 및 프로세서(212)의 구성요소들은 도 6의 컨텐츠 제공 방법이 포함하는 단계들(610 내지 660)을 수행하도록 전자 기기 1(110)을 제어할 수 있다. 이때, 프로세서(212) 및 프로세서(212)의 구성요소들은 메모리(211)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(212)의 구성요소들은 전자 기기 1(110)에 저장된 프로그램 코드가 제공하는 명령에 따라 프로세서(212)에 의해 수행되는 프로세서(212)의 서로 다른 기능들(different functions)의 표현들일 수 있다. 예를 들어, 프로세서(212)가 상술한 명령에 따라 다운로드를 요청하도록 전자 기기 1(110)을 제어하는 프로세서(212)의 기능적 표현으로 다운로드 요청부(510)가 사용될 수 있다.5, the processor 212 included in the first electronic device 110 may include a download request unit 210 as a component, and the first electronic apparatus 110 may implement a content providing system according to an embodiment of the present invention. (510), a transmission / reception control unit (520), and a reproduction control unit (530). The components of the processor 212 and the processor 212 may control the electronic device 1 110 to perform the steps 610 to 660 included in the content providing method of FIG. At this time, the components of the processor 212 and the processor 212 may be implemented to execute instructions according to the code of the operating system and the code of at least one program that the memory 211 contains. Herein, the components of the processor 212 are representations of different functions of the processor 212 performed by the processor 212 in accordance with instructions provided by the program code stored in the electronic device 110 . For example, the download request portion 510 may be used as a functional representation of the processor 212 that controls the electronic device 1 110 to cause the processor 212 to request a download in accordance with the instructions described above.

단계(610)에서 프로세서(212)는 전자 기기 1(110)의 제어와 관련된 명령이 로딩된 메모리(211)로부터 필요한 명령을 읽어드릴 수 있다. 이 경우, 상기 읽어드린 명령은 프로세서(212)가 이후 설명될 단계들(620 내지 660)을 실행하도록 제어하기 위한 명령을 포함할 수 있다.At step 610, the processor 212 may read the necessary commands from the loaded memory 211 with instructions associated with control of the electronic device 110. [ In this case, the read command may include instructions for controlling the processor 212 to execute the steps 620 to 660 to be described later.

단계(620)에서 다운로드 요청부(510)는 디지털 컨텐츠에 대해, 각각 서로 다른 코드값이 삽입된 복수의 복사본을 관리하는 서버(150)로 디지털 컨텐츠의 다운로드를 요청할 수 있다. 예를 들어, 다운로드 요청부(510)는 전자 기기 1(110)이 네트워크(170)를 통해 서버(150)에 접근하여 서버(150)가 제공하는 인터페이스를 통해 특정 디지털 컨텐츠의 다운로드를 요청하도록 전자 기기 1(110)을 제어할 수 있다. 서버(150)는 도 3 및 도 4를 통해 설명한 바와 같이 서로 다른 코드값이 삽입된 복수의 복사본을 관리하고, 전자 기기 1(110)의 사용자의 고유 식별자를 인식하기 위한 정보가 포함된 가상 파일을 전자 기기 1(110)로 제공할 수 있다.In step 620, the download request unit 510 may request downloading of digital content to the server 150, which manages a plurality of copies, into which different code values are inserted, for the digital contents. For example, the download request unit 510 accesses the server 150 through the network 170 to request the download of the specific digital content through the interface provided by the server 150, It is possible to control the device 1 (110). 3 and 4, the server 150 manages a plurality of copies in which different code values are inserted, and stores a virtual file including information for recognizing the unique identifier of the user of the electronic device 1 (110) To the electronic device 1 (110).

단계(630)에서 송수신 제어부(520)는 다운로드의 요청에 따라 서버(150)로부터 복수의 복사본의 부분들이 조합된 가상 파일의 위치정보 및 복수의 복사본에서 조합된 부분들 각각을 식별하기 위한 옵셋 정보를 수신할 수 있다. 예를 들어, 송수신 제어부(520)는 서버(150)로부터 위치정보가 옵셋 정보가 포함된 데이터를 수신하도록 전자 기기 1(110)을 제어할 수 있다.In step 630, the transmission / reception control unit 520 receives from the server 150 the location information of the virtual file in which the parts of the plurality of copies are combined and the offset information for identifying each of the combined parts in the plurality of copies, Lt; / RTI > For example, the transmission / reception control unit 520 may control the electronic device 1 (110) so that the position information is received from the server 150, including the offset information.

앞서 설명한 바와 같이 가상 파일은 이미 설명한 바와 같이 서버에서 서로 다른 코드값의 조합이 사용자의 고유 식별자와 매칭되도록 복수의 복사본의 부분들을 조합하여 생성될 수 있다. 또한, 위치정보는 클라이언트가 네트워크 상에서 가상 파일을 찾기 위한 위치에 대한 정보를 포함할 수 있으며, 일례로 가상 파일을 위해 생성된 유니폼 리소스 로케이터(Uniform Resource Locator, URL)를 포함할 수 있다. 옵셋 정보는 사용자의 고유 식별자와 매칭된 부분들이 해당 복사본에서 어느 부분인가를 식별하기 위한 정보로서 바이트-범위나 청크 넘버를 포함할 수 있다.As described above, the virtual file can be generated by combining parts of a plurality of copies such that a combination of different code values in the server matches the unique identifier of the user as described above. In addition, the location information may include information about a location for a client to search for a virtual file on the network, and may include, for example, a uniform resource locator (URL) generated for a virtual file. The offset information may include a byte-range or a chunk number as information for identifying which part of the copy matches the unique identifier of the user.

단계(640)에서 다운로드 요청부(510)는 옵셋 정보를 포함하는 다운로드 요청을 위치정보에 기반하여 전송할 수 있다. 예를 들어, 다운로드 요청부(510)는 위치정보에 따라 다운로드 요청 신호를 네트워크(170)를 통해 전송하도록 전자 기기 1(110)을 제어할 수 있다. 이때 앞서 설명한 바와 같이 가상 파일이 포함하는 조각들은 실질적으로 서로 다른 복수의 복사본들에 포함된 것이기 때문에 다운로드 요청은 가상 파일이 포함하는 조각들의 수만큼 이루어질 수 있다.In step 640, the download request unit 510 may transmit a download request including offset information based on the location information. For example, the download request unit 510 may control the first electronic device 110 to transmit a download request signal via the network 170 according to the location information. At this time, since the fragments included in the virtual file are included in a plurality of substantially different copies as described above, the download request can be made as many as the number of fragments included in the virtual file.

다운로드 요청을 수신한 서버(150)는 도 3 및 도 4를 통해 설명한 바와 같이, 위치정보에 대응하는 가상 파일을 전자 기기 1(110)로 전송함에 있어서, 옵셋 정보에 대응하는 부분들을 복수의 복사본에서 각각 추출하여 전자 기기 1(110)로 전송함으로써 가상 파일을 전송할 수 있다.As described with reference to FIGS. 3 and 4, the server 150 receiving the download request transmits the virtual file corresponding to the location information to the first electronic device 110, And transmits the virtual file to the electronic device 1 (110).

단계(650)에서 송수신 제어부(520)는 복수의 복사본에서 옵셋 정보에 대응하는 부분들의 조합을 위치정보를 통해 식별되는 가상 파일로서 수신할 수 있다. 예를 들어, 송수신 제어부(520)는 서버(150)가 네트워크(170)를 전송하는 가상 파일을 수신하도록 전자 기기 1(110)을 제어할 수 있다. 옵셋 정보에 대응하는 모든 조각들을 조합하면, 하나의 디지털 컨텐츠에 대응하는 데이터가 가상 파일로서 얻어질 수 있으며, 전자 기기 1(110)은 수신된 가상 파일은 하나의 파일로서 전자 기기 1(110)의 스토리지에 저장할 수 있다.In step 650, the transmission / reception control unit 520 may receive a combination of parts corresponding to the offset information in the plurality of copies as a virtual file identified through the location information. For example, the transmission / reception control unit 520 may control the electronic device 1 (110) so that the server 150 receives the virtual file transmitting the network 170. When all the pieces corresponding to the offset information are combined, data corresponding to one digital content can be obtained as a virtual file, and the electronic device 1 (110) Of storage.

단계(660)에서 재생 제어부(530)는 저장된 가상 파일을 재생할 수 있다. 예를 들어, 재생 제어부(530)는 스토리지에 저장된 가상 파일을 찾아 재생하여 전자 기기 1(110)의 디스플레이를 통해 표시하도록 전자 기기 1(110)을 제어할 수 있다.In step 660, the reproduction control unit 530 can reproduce the stored virtual file. For example, the playback control unit 530 may control the first electronic device 110 to display and reproduce a virtual file stored in the storage and display the first virtual file on the display of the first electronic device 110.

이하에서는 사용자의 고유 식별자에 대응하는 정보가 삽입된 디지털 컨텐츠를 다운로드 방식으로 제공하기 위한 보다 구체적인 예들을 설명한다.Hereinafter, more specific examples for providing the digital content in which the information corresponding to the unique identifier of the user is inserted in a downloading manner will be described.

도 7은 본 발명의 일실시예에 있어서, 서로 다른 코드값이 삽입된 복수의 복사본들의 예를 도시한 도면이다. 도 7은 하나의 디지털 컨텐츠에 대한 n개의 복사본들(C1, C2, C3, …, Cn)을 나타내고 있다. 디지털 컨텐츠는 1200 바이트의 크기(0-1199 바이트-범위)를 갖고 있고, 따라서 n개의 복사본들(C1, C2, C3, …, Cn) 역시 각각 1200 바이트의 크기를 갖고 있다고 가정한다. 또한, n개의 복사본들(C1, C2, C3, …, Cn) 각각에 코드값 '0', 코드값 '1', 코드값 '2', 코드값 'n-1'과 같이 서로 다른 코드값이 삽입되어 있다고 가정한다. 앞서 설명한 바와 같이 코드값은 숫자나 문자, 숫자의 조합, 문자의 조합 또는 숫자와 문자의 조합과 같이 다양한 형태로 구현될 수 있다.FIG. 7 is a diagram illustrating an example of a plurality of copies in which different code values are inserted, according to an exemplary embodiment of the present invention. Figure 7 shows n copies (C1, C2, C3, ..., Cn) for one digital content. It is assumed that the digital content has a size of 1200 bytes (0-1199 bytes-range), so that n copies (C1, C2, C3, ..., Cn) also each have a size of 1200 bytes. In addition, a code value '0', a code value '1', a code value '2', and a code value 'n-1' are added to each of the n copies C 1, C 2, C 3, Is inserted. As described above, code values can be implemented in various forms, such as numbers, letters, combinations of numbers, combinations of letters, or combinations of numbers and letters.

앞서 설명한 컨텐츠 관리부(310)는 단계(420)에서 이러한 복사본들을 관리할 수 있다. 복사본들은 서버(150)에 저장될 수도 있으나, 필요에 따라서는 서버(150)와 네트워크(170)를 통해 통신하는 별도의 장치에 저장될 수도 있다.The content management unit 310 described above can manage such copies in step 420. The copies may be stored in the server 150, but may be stored in a separate device that communicates with the server 150 via the network 170, as needed.

도 8은 본 발명의 일실시예에 있어서, 사용자별로 구성된 가상 파일의 예들을 도시한 도면이다. 도 8은 세 명의 사용자들(U1, U2, U3) 각각의 고유 식별자에 매칭되도록 세 개의 복사본들(C1, C2, C3)을 이용하여 가상 파일들을 구성한 예를 나타내고 있다. 이때, 도 7을 통해 사용자 U1의 고유 식별자가 "012220022011"이거나 고유값 "012220022011"와 매칭되어 서버(150)에 저장된 값임을 알 수 있다. 또한, 사용자 U2의 고유 식별자는 "111022211100"이거나 "111022211100"와 매칭되어 서버(150)에 저장된 값임을 알 수 있다. 마찬가지로, 사용자 U3의 고유 식별자는 "221122012000"이거나 "221122012000"와 매칭되어 서버(150)에 저장된 값임을 알 수 있다.8 is a diagram illustrating examples of a virtual file configured for each user in an embodiment of the present invention. FIG. 8 shows an example in which virtual files are configured using three copies C1, C2, and C3 so as to match the unique identifiers of the three users U1, U2, and U3. At this time, it can be seen from FIG. 7 that the unique identifier of the user U1 is "012220022011 ", or the value is stored in the server 150 by matching with the unique value" 012220022011 ". Further, it can be known that the unique identifier of the user U2 is " 111022211100 ", or the value stored in the server 150 is matched with "111022211100 ". Likewise, the unique identifier of the user U3 can be found to be "221122012000" or a value stored in the server 150 matching "221122012000".

예를 들어, 사용자 U1의 고유 식별자가 "012220022011"라 가정하자. 이때, 서버(150)는 3개의 복사본들(C1, C2, C3)로부터 사용자 U1의 고유 식별자 "012220022011"에 매칭되는 부분들을 조합할 수 있다. 다시 말해, 서버(150)는 사용자 U1의 고유 식별자의 첫 번째 값인 '0'에 따라 코드값 '0'을 갖는 복사본 C1로부터 0-99 바이트-범위의 부분을 가상 파일의 첫 번째 조각(810)으로 매칭할 수 있다. 또한, 서버(150)는 사용자 U1의 고유 식별자의 두 번째 값인 '1'에 따라 코드값 '1'을 갖는 복사본 C2로부터 100-199 바이트-범위의 부분을 가상 파일의 두 번째 조각(820)으로 매칭할 수 있다. 다시 서버(150)는 사용자 U1의 고유 식별자의 세 번째 값인 '2'에 따라 코드값 '2'를 갖는 복사본 C3으로부터 200-299 바이트-범위의 부분을 가상 파일의 세 번째 조각(830)으로 매칭할 수 있다. 이러한 과정을 사용자 U1의 고유 식별자가 "012220022011"의 모든 값들에 대해 반복함으로써 사용자 U1을 위한 고유 식별자가 삽입된 가상 파일이 구성될 수 있다. 사용자 U2를 위한 가상 파일과 사용자 U3을 위한 가상 파일 역시 유사한 방법으로 구성될 수 있다. For example, assume that the unique identifier of user U1 is "012220022011 ". At this time, the server 150 may combine the parts that match the unique identifier "012220022011" of the user U1 from the three copies C1, C2, and C3. In other words, the server 150 divides the portion of the range 0-99 bytes-from the copy C1 having the code value '0' according to the first value '0' of the unique identifier of the user U1 into the first piece 810 of the virtual file, . ≪ / RTI > In addition, the server 150 converts the portion of the range from 100-199 bytes to the second piece 820 of the virtual file from the copy C2 having the code value '1' according to the second value '1' of the unique identifier of the user U1 Can be matched. The server 150 again matches the portion of the 200-299 byte-range from the copy C3 having the code value '2' to the third piece 830 of the virtual file according to the second value '2' of the unique identifier of the user U1 can do. By repeating this process for all values of the unique identifier "012220022011" of the user U1, a virtual file having a unique identifier for the user U1 can be constructed. A virtual file for user U2 and a virtual file for user U3 may also be constructed in a similar manner.

실시예에 따라서는 이미 설명한 바와 같이, 동일한 코드값을 갖고 연속된 조각들이 하나의 조각으로 병합될 수도 있다. 예를 들어, 도 8에서 사용자 U1의 가상 파일은 세 번째 조각(830), 네 번째 조각(840) 및 다섯 번째 조각(850)의 세 개의 조각이 동일한 코드값 '2'를 가짐을 알 수 있다.Depending on the embodiment, as already explained, successive fragments having the same code value may be merged into a single fragment. For example, in FIG. 8, it can be seen that the virtual file of user U1 has three pieces of the third piece 830, the fourth piece 840 and the fifth piece 850 having the same code value '2' .

도 9는 본 발명의 일실시예에 있어서, 동일한 코드값의 연속된 조각들을 병합하는 예를 도시한 도면이다. 도 9는 도 8의 가상 파일들에서 동일한 코드값을 갖고 서로 연속된 부분들을 하나의 부분으로 병합한 예를 나타내고 있다. 예를 들어, 사용자 U1을 위한 가상 파일에 첫 번째 조각(910)과 두 번째 조각(920)은 동일한 코드값을 갖고 연속된 조각들이 존재하지 않기 때문에 각각 하나의 조각으로 존재한다. 반면, 도 8에서 설명한 세 개의 조각들(830, 840, 850)은 코드값 '2'를 동일하게 갖는 연속된 조각들로서 도 9에 도시된 바와 같이 하나의 조각(930)으로 병합될 수 있다. 도 8의 가상 파일을 이용하는 경우 사용자 U1이 12번의 다운로드 요청과 12번의 다운로드를 진행해야 하지만, 도 8의 가상 파일을 이용하는 경우 사용자 U1은 7번의 다운로드 요청과 7번의 다운로드만 진행하면 되기 때문에 사용자의 가상 파일에 고유 식별자를 삽입함과 동시에 다운로드 속도를 향상시킬 수 있다.Figure 9 is an illustration of an example of merging successive fragments of the same code value in one embodiment of the present invention. FIG. 9 shows an example of merging successive portions having the same code value in the virtual files of FIG. 8 into one portion. For example, in the virtual file for user U1, the first piece 910 and the second piece 920 exist as one piece because they have the same code value and do not have consecutive pieces. On the other hand, the three pieces 830, 840 and 850 described in FIG. 8 can be merged into one piece 930 as shown in FIG. 9 as successive pieces having the same code value '2'. In the case of using the virtual file of FIG. 8, the user U1 has to proceed with 12 download requests and 12 downloads. However, when the virtual file of FIG. 8 is used, since the user U1 only needs 7 download requests and 7 downloads, It is possible to insert the unique identifier into the virtual file and improve the downloading speed.

도 10은 본 발명의 일실시예에 있어서, 사용자별 옵셋 정보의 예를 도시한 도면이다. 예를 들어, 도 10에서 사용자 U1의 가상 파일을 구성하는 첫 번째 조각(910)은 0~99의 바이트-범위를 갖고, 두 번째 조각(920)은 100~199의 바이트-범위를 가지며, 세 번째 조각(930)은 200~499의 바이트-범위를 가짐을 알 수 있다. 이러한 조각들 각각에 대한 바이트-범위가 옵셋 정보로서 해당 사용자들에게 제공될 수 있다. 역으로 사용자들은 제공된 옵셋 정보에 기초하여 서버(150)로부터 필요한 조각을 다운로드 받을 수 있게 된다. 예를 들어, 사용자 U1이 '0~99'의 바이트-범위의 옵셋 정보가 포함된 조각의 다운로드를 서버(150)로 요청하면, 서버(150)는 사용자의 고유 식별자 "012220022011"의 첫 번째 값이 '0'임을 알기 때문에 코드값 '0'의 복사본 C1에서 '0~99' 바이트-범위의 데이터를 사용자 U1에게 제공할 수 있다. 다시 사용자 U1이 '100~199'의 바이트-범위의 옵셋 정보가 포함된 조각의 다운로드를 서버(150)로 요청하면, 서버(150)는 사용자의 고유 식별자 "012220022011"의 두 번째 값이 '1'임을 알기 때문에 코드값 '1'의 복사본 C2에서 '100~199'의 바이트-범위의 데이터를 사용자 U1에게 제공할 수 있다. 이와 유사하게, 사용자 U1이 '200~499'의 바이트-범위의 옵셋 정보가 포함된 조각의 다운로드를 서버(150)로 요청하면, 서버(150)는 사용자의 고유 식별자 "012220022011"의 두 번째 값, 세 번째 값 및 네 번째 값이 '2'임을 알기 때문에 코드값 '2'의 복사본 C3에서 '200~499'의 바이트-범위의 데이터를 사용자 U1에게 제공할 수 있다. 이와 같은 과정의 반복을 통해 사용자 U1을 위한 가상 파일이 사용자 U1에게 제공될 수 있다.10 is a diagram illustrating an example of offset information per user in an embodiment of the present invention. For example, in FIG. 10, the first piece 910 constituting the virtual file of the user U1 has a byte-range of 0 to 99, the second piece 920 has a byte-range of 100 to 199, Th piece 930 has a byte-range of 200 to 499 bytes. A byte-range for each of these fragments may be provided to the corresponding users as offset information. Conversely, users can download necessary pieces from the server 150 based on the provided offset information. For example, if the user U1 requests the server 150 to download a piece of byte-range offset information of '0 to 99', the server 150 obtains the first value of the user's unique identifier "012220022011" Quot; 0 ", it is possible to provide the user U1 with data in the range of '0 to 99' bytes from the copy C1 of the code value '0'. When the user U1 again requests the server 150 to download the fragment including the byte-range offset information of '100 to 199', the server 150 determines that the second value of the user's unique identifier "012220022011 &Quot;, it is possible to provide the user U1 with the byte-range data of '100 to 199' in the copy C2 of the code value '1'. Similarly, when the user U1 requests the server 150 to download a piece including offset information of byte-range of '200 to 499', the server 150 sets the second value of the user's unique identifier "012220022011" Range data of '200 to 499' in the copy C3 of the code value '2' can be provided to the user U1 because it knows that the third and fourth values are '2'. By repeating this process, a virtual file for the user U1 can be provided to the user U1.

앞서 설명한 실시예들에서와 같이 디지털 컨텐츠가 동일한 크기의 조각들로 분할될 필요성이 존재한다. 그러나, 복수의 GOP(Group of Pictures) 블록으로 구성된 비디오 데이터를 포함하는 디지털 컨텐츠를 고정 크기(fixed-length)로 분할하는 경우 이미 설명한 바와 같이 GOP가 훼손될 가능성이 존재한다. 또한, 상술한 실시예들 외에도 특별한 요구사항에 따라 디지털 컨텐츠를 고정 크기로 분할하여 암호화해야 하는 필요성도 존재한다. 이후에서는, GOP의 훼손 없이 디지털 컨텐츠를 고정 크기로 분할하기 위한 컨텐츠 분할 시스템 및 컨텐츠 분할 방법에 대해 설명한다. There is a need to divide digital content into pieces of equal size, as in the embodiments described above. However, when digital contents including video data composed of a plurality of GOP (Group of Pictures) blocks are divided into a fixed-length, there is a possibility that the GOP is damaged as described above. In addition to the above-described embodiments, there is also a need to divide and encrypt digital content into fixed sizes according to special requirements. Hereinafter, a content dividing system and a content dividing method for dividing digital contents into fixed sizes without damaging the GOP will be described.

도 11은 본 발명의 일실시예에 있어서, 서버의 프로세서가 포함할 수 있는 구성요소의 다른 예를 도시한 블록도이고, 도 12는 본 발명의 일실시예에 따른 서버가 수행할 수 있는 방법의 다른 예를 도시한 흐름도이다.FIG. 11 is a block diagram illustrating another example of a component that a processor of a server may include in an embodiment of the present invention. FIG. 12 is a diagram illustrating a method that a server can perform according to an embodiment of the present invention Fig.

본 실시예에서 서버(150)는 컨텐츠 분할 시스템을 구현할 수 있으며, 도 11에 도시된 바와 같이 서버(150)에 포함된 프로세서(222)는 구성요소들로서 디지털 컨텐츠 확인부(1110), 컨텐츠 분할부(1120) 및 컨텐츠 암호화부(1130)를 포함할 수 있다. 또한, 실시예에 따라 도 3 및 도 4를 통해 설명한 컨텐츠 관리부(310), 송수신 제어부(320), 가상 파일 구성부(330) 및 정보 생성부(340)를 선택적으로 더 포함할 수 있다. 이러한 프로세서(222) 및 프로세서(222)의 구성요소들은 도 12의 컨텐츠 분할 방법이 포함하는 단계들(1210 내지 1240)을 수행하도록 서버(150)를 제어할 수 있다. 이때, 프로세서(222) 및 프로세서(222)의 구성요소들은 메모리(221)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 이미 설명한 바와 같이, 프로세서(222)의 구성요소들은 서버(150)에 저장된 프로그램 코드가 제공하는 제어 명령에 따라 프로세서(222)에 의해 수행되는 프로세서(222)의 서로 다른 기능들(different functions)의 표현들일 수 있다.In this embodiment, the server 150 may implement a content division system. As shown in FIG. 11, the processor 222 included in the server 150 includes a digital content checking unit 1110, A content encryption unit 1120, and a content encryption unit 1130. In addition, the content management unit 310, the transmission / reception control unit 320, the virtual file configuration unit 330, and the information generation unit 340 described above with reference to FIG. 3 and FIG. The components of the processor 222 and the processor 222 may control the server 150 to perform the steps 1210 to 1240 included in the content division method of FIG. At this time, the components of the processor 222 and the processor 222 may be implemented to execute instructions according to the code of the operating system and the code of at least one program that the memory 221 contains. The components of processor 222 may be implemented in different functions of processor 222 that are performed by processor 222 in accordance with control commands provided by the program code stored in server 150. [ Expressions.

단계(1210)에서 프로세서(222)는 서버(150)의 제어와 관련된 명령이 로딩된 메모리(221)로부터 필요한 명령을 읽어드릴 수 있다. 이 경우, 상기 읽어드린 명령은 프로세서(222)가 이후 설명될 단계들(1220 내지 1240)을 실행하도록 제어하기 위한 명령을 포함할 수 있다.At step 1210, the processor 222 can read the necessary commands from the loaded memory 221 with instructions associated with the control of the server 150. [ In this case, the read command may include an instruction to control the processor 222 to execute steps 1220 to 1240 to be described later.

단계(1220)에서 디지털 컨텐츠 확인부(1110)는 복수의 GOP(Group of Pictures) 블록으로 구성된 비디오 데이터와 오디오 데이터를 포함하는 디지털 컨텐츠를 확인할 수 있다. 이미 설명한 바와 같이, 동영상과 같은 디지털 컨텐츠는 일반적으로 다수의 프레임들이 모여서 묶인 복수의 GOP(Group of Pictures)로 구성될 수 있으며, 오디오 재생을 위한 오디오 데이터를 더 포함할 수 있다. 디지털 컨텐츠 확인부(1110)는 이러한 디지털 컨텐츠 중 분할하고자 하는 디지털 컨텐츠를 확인할 수 있다. 예를 들어, 디지털 컨텐츠 확인부(1110)는 서버(150)의 스토리지에 저장된 디지털 컨텐츠들 중 분할하고자 하는 디지털 컨텐츠를 탐색하도록 서버(150)를 제어할 수 있다.In step 1220, the digital content check unit 1110 can check the digital content including the video data and the audio data, which are composed of a plurality of GOP (Group of Pictures) blocks. As described above, digital contents such as moving pictures can be generally composed of a plurality of GOPs (Group of Pictures) in which a plurality of frames are grouped together and further include audio data for audio reproduction. The digital content verification unit 1110 can confirm the digital contents to be divided among the digital contents. For example, the digital content verification unit 1110 may control the server 150 to search digital content to be divided among the digital contents stored in the storage of the server 150. [

단계(1230)에서 컨텐츠 분할부(1120)는 디지털 컨텐츠를 고정 크기(fixed-length)를 갖는 복수의 컨텐츠 블록들로 분할할 수 있다. 이때, 복수의 GOP 블록들 중 적어도 일부의 블록들은 서로 다른 크기를 가질 수 있으며, 복수의 GOP 블록들 각각은 상기 고정 크기 이하의 크기를 가질 수 있다. 다시 말해, 컨텐츠 블록이 갖게 되는 고정 크기는 복수의 GOP 블록 중 가장 큰 GOP 블록보다 더 큰 크기를 갖도록 설정될 수 있다. 이때, 컨텐츠 분할부(1120)는 복수의 GOP 블록 중 제1 GOP 블록의 크기가 고정 크기 미만인 경우, 제1 GOP 블록에 오디오 데이터의 제1 부분을 결합하여 고정 크기의 제1 컨텐츠 블록을 생성할 수 있다. 동영상과 같은 비디오 컨텐츠에서 오디오는 여러 개의 패킷으로 구성되고, 패킷들간의 선후 연관관계가 없기 때문에, 오디오 블록은 중간에 분할되어도 전체적인 재생에 영향이 없다. 또한, 중간에 분할되더라도 손상되는 패킷의 크기가 매우 작기 때문에 디지털 컨텐츠를 재생하는 사용자의 입장에서는 큰 차이가 없다. 다시 말해, 본 실시예에서는 하나의 컨텐츠 블록에 GOP 블록을 먼저 채우고, 완전한 GOP 블록이 들어갈 수 없는 컨텐츠 블록의 나머지 부분에 오디오 블록의 적어도 일부인 제1 부분을 결합함으로써 서로 다른 크기의 GOP 블록들이 훼손되지 않도록 디지털 컨텐츠를 분할할 수 있다.In step 1230, the content divider 1120 may divide the digital content into a plurality of content blocks having a fixed-length. At this time, at least some blocks of the plurality of GOP blocks may have different sizes, and each of the plurality of GOP blocks may have a size smaller than the fixed size. In other words, the fixed size that the content block has can be set to have a larger size than the largest GOP block among the plurality of GOP blocks. At this time, when the size of the first GOP block among the plurality of GOP blocks is less than the fixed size, the content dividing unit 1120 generates the first content block of a fixed size by combining the first portion of the audio data with the first GOP block . In video content such as video, audio is composed of several packets, and since there is no subsequent association between packets, the audio block has no effect on the overall playback even if it is divided in the middle. In addition, since the size of a damaged packet is very small even if it is divided in the middle, there is not much difference in terms of a user playing digital contents. In other words, in this embodiment, the GOP blocks are first filled in one content block, and the GOP blocks of different sizes are damaged by combining the first part, which is at least a part of the audio block, in the remaining part of the content block, It is possible to divide the digital content.

만약, 제1 블록의 크기가 고정 크기인 경우, 컨텐츠 분할부(1120)는 단계(1230)에서 제1 GOP 블록을 고정 크기의 제1 컨텐츠 블록으로 생성할 수 있다. 다시 말해, 분할에 의해 훼손되지 않을 GOP 블록의 경우에는 GOP 블록을 그대로 컨텐츠 블록으로 활용할 수 있다.If the size of the first block is a fixed size, the content divider 1120 may generate the first GOP block as a first content block having a fixed size in step 1230. In other words, in the case of a GOP block which is not to be damaged by the segmentation, the GOP block can be directly used as a content block.

오디오 데이터는 복수의 오디오 블록들로 구성될 수 있다. 이 경우, 상술한 오디오 데이터의 제1 부분은 제1 GOP 블록에 대응하는 제1 오디오 블록의 적어도 일부일 수 있다. 예를 들어, 일반적인 MP4 오디오/비디오 블록들은 GOP 블록들과 각각의 GOP 블록들에 대응하는 오디오 블록들이 순차적으로 배치되어 디지털 컨텐츠를 구성할 수 있다. 이때, 제1 GOP 블록의 크기가 고정 크기 미만인 경우에는 제1 GOP 블록과 제1 오디오 블록의 일부인 제1 부분의 결합을 통해 고정 크기의 컨텐츠 블록이 생성될 수 있다.The audio data may be composed of a plurality of audio blocks. In this case, the first portion of the above-described audio data may be at least a part of the first audio block corresponding to the first GOP block. For example, in general MP4 audio / video blocks, GOP blocks and audio blocks corresponding to the respective GOP blocks are sequentially arranged to constitute digital contents. At this time, if the size of the first GOP block is less than the fixed size, a fixed size content block may be generated through the combination of the first GOP block and the first portion, which is a part of the first audio block.

이때, 컨텐츠 분할부(1120)는 제1 오디오 블록에서 제1 부분을 제외한 나머지 부분인 제2 부분과 복수의 GOP 블록 중 제2 GOP 블록을 결합하여 제2 블록을 생성하되, 제2 부분과 제2 GOP 블록이 결합된 크기가 고정 크기 미만인 경우, 오디오 데이터의 제3 부분을 더 결합하여 고정 크기의 제2 블록을 생성할 수 있다. 이때, 오디오 데이터의 제3 부분은 제2 GOP 블록에 대응하는 오디오 블록의 적어도 일부일 수 있다.At this time, the content division unit 1120 generates a second block by combining a second part of the first audio block excluding the first part and a second GOP block among the plurality of GOP blocks, If the combined size of the two GOP blocks is less than the fixed size, the third portion of the audio data may be further combined to create a second block of fixed size. Here, the third portion of the audio data may be at least a portion of the audio block corresponding to the second GOP block.

만약, 제2 부분과 제2 GOP 블록이 결합된 크기가 고정 크기 이상인 경우, 컨텐츠 분할부(1120)는 제2 GOP 블록에 제2 부분의 일부분인 제2-1 부분을 결합하여 고정 크기의 제2 블록을 생성할 수 있다.If the combined size of the second portion and the second GOP block is equal to or larger than the fixed size, the content divider 1120 combines the second-1 portion, which is a portion of the second portion, with the second GOP block, Two blocks can be generated.

이처럼, 서버(150)는 GOP 블록과 오디오 데이터의 결합을 통해 고정 크기의 컨텐츠 블록들로 디지털 컨텐츠를 분할할 수 있다. As described above, the server 150 can divide the digital content into the fixed-size content blocks through the combination of the GOP block and the audio data.

단계(1240)에서 컨텐츠 암호화부(1130)는 고정 크기로 분할된 컨텐츠 블록의 단위로 디지털 컨텐츠를 암호화할 수 있다. 예를 들어, 앞선 실시예들에서는 디지털 컨텐츠를 동일한 크기의 조각들의 조합으로 구성함으로써 서버-클라이언트 환경에서 사용자 고유 식별자가 은닉된 디지털 컨텐츠를 제공하였다. 이 경우, 각 동일한 크기의 조각들, 다시 말해 고정 크기(일례로, N-byte)의 컨텐츠 블록의 단위로 DRM 등을 위한 암호화가 진행될 필요가 있다. 따라서, 서버(150)는 상술한 컨텐츠 분할 방법에 따라 디지털 컨텐츠를 분할함으로써 GOP가 손상되지 않으면서도 고정 크기로 디지털 컨텐츠를 분할하여 암호화할 수 있다.In operation 1240, the content encryption unit 1130 may encrypt the digital content in units of content blocks divided into a fixed size. For example, in the preceding embodiments, digital content is composed of a combination of pieces of the same size, thereby providing digital content that is hidden by a user's unique identifier in a server-client environment. In this case, encryption for DRM or the like needs to proceed in units of pieces of the same size, that is, a unit of a fixed-size (e.g., N-byte) content block. Accordingly, the server 150 divides the digital content according to the content division method described above, thereby dividing and encrypting the digital content with a fixed size without damaging the GOP.

도 13은 일반적인 MP4 컨텐츠의 예를 도시한 도면이다. 도 13은 복수의 오디오 블록들(1310, 1330, 1350)과 복수의 GOP 블록들(1320, 1340, 1360)이 순차적으로 배열되어 구성된 디지털 컨텐츠의 일부의 예를 나타내고 있다. 이때, 복수의 오디오 블록들(1310, 1330, 1350)과 복수의 GOP 블록들(1320, 1340, 1360)의 크기(byte 단위)가 서로 다름을 알 수 있다. 이때, 점선박스들(1370, 1380, 1390)은 디지털 컨텐츠를 고정 크기(200 byte)로 분할하고, 이러한 분할에 따라 제1 GOP 블록(1320)과 제2 GOP 블록(1340)이 손상될 수 있음을 나타내고 있다. 이미 설명한 바와 같이 GOP 블록이 훼손되는 경우에는 디지털 컨텐츠의 재생 시 영상 자체가 깨질 수 있다.13 is a diagram showing an example of general MP4 contents. 13 shows an example of a part of digital contents in which a plurality of audio blocks 1310, 1330, and 1350 and a plurality of GOP blocks 1320, 1340, and 1360 are sequentially arranged. At this time, it can be seen that the sizes (byte units) of the plurality of audio blocks 1310, 1330, and 1350 and the plurality of GOP blocks 1320, 1340, and 1360 are different from each other. At this time, the dotted boxes 1370, 1380, and 1390 divide the digital contents into a fixed size (200 bytes), and the first GOP block 1320 and the second GOP block 1340 may be damaged . If the GOP block is damaged as described above, the image itself may be broken when the digital content is reproduced.

도 14는 본 발명의 일실시예에 있어서, 디지털 컨텐츠의 분할 예를 도시한 도면이다. 도 14는 제1 GOP 블록(1320)의 180 byte와 제1 오디오 블록(1310)의 일부인 제1 부분(1410)의 20 byte의 결합에 의해 제1 점선박스(1370)로 구분되는 제1 컨텐츠 블록이 생성되는 예를 나타내고 있다. 14 is a diagram showing an example of division of digital contents in an embodiment of the present invention. 14 shows a first content block 1370 divided by a first dotted line box 1370 by combining 180 bytes of the first GOP block 1320 and 20 bytes of a first portion 1410 which is a part of the first audio block 1310. [ Is generated.

또한, 도 14는 제1 오디오 블록(1310)의 나머지인 제2 부분(1420)의 30 byte와 제2 GOP 블록(1340)의 105 byte의 결합을 통해 제2 점선박스(1380)로 구분되는 제2 컨텐츠 블록이 생성되는 예를 나타내고 있다. 이때, 제2 부분(1420)의 30 byte와 제2 GOP 블록(1340)의 105 byte를 결합해도 고정 크기인 200 byte 미만이기 때문에 제2 오디오 블록(1330)의 제3 부분(1430)이 더 결합되어 제2 컨텐츠 블록이 완성될 수 있다.14 is a block diagram illustrating an example in which a first audio block 1310 is divided into a second dotted line box 1380 through a combination of 30 bytes of the second portion 1420 and 105 bytes of the second GOP block 1340 2 content block is generated. The third portion 1430 of the second audio block 1330 is further coupled to the second audio block 1330 because the 30 bytes of the second portion 1420 and the 105 bytes of the second GOP block 1340 are combined, So that the second content block can be completed.

이와 유사하게, 제2 오디오 블록(1330)의 나머지인 제4 부분(1440)의 12 byte와 제3 GOP 블록(1360)의 82 byte의 결합을 통해 제3 점선박스(1390)로 구분되는 제3 컨텐츠 블록의 생성이 시도될 수 있다. 이때, 제4 부분(1440)의 12 byte와 제3 GOP 블록(1360)의 82 byte를 결합해도 고정 크기인 200 byte 미만이기 때문에 제3 GOP 블록(1360)에 대응하는 제3 오디오 블록(1350)의 44 byte가 제3 컨텐츠 블록의 생성을 위해 더 결합될 수 있다. 그러나 제4 부분(1440)의 12 byte, 제3 GOP 블록(1360)의 82 byte, 그리고 제3 오디오 블록(1350)의 44 byte를 모두 결합해도 고정 크기 200 byte 미만이기 때문에 다음 GOP 블록이나 다음 오디오 블록의 적어도 일부에 대한 결합이 고려될 수 있다. 예를 들어 다음 GOP 블록의 크기가 62(200-(12+82+44)) byte 이하인 경우에는 다음 GOP 블록이 제3 컨텐츠 블록의 생성을 위해 더 결합될 수 있다. 그러나 다음 GOP 블록의 크기가 62 byte를 초과하는 경우에는 다음 오디오 블록의 적어도 일부가 제3 컨텐츠 블록의 생성을 위해 더 결합될 수 있다.Similarly, the second audio block 1330 is divided into a third dotted line box 1390 through the combination of the remaining 12 bytes of the fourth portion 1440 and the 82 bytes of the third GOP block 1360, The creation of a content block may be attempted. Since the 12 bytes of the fourth part 1440 and the 82 bytes of the third GOP block 1360 are combined, the third audio block 1350 corresponding to the third GOP block 1360 is less than the fixed size of 200 bytes. May be further combined for the generation of the third content block. However, since 12 bytes of the fourth portion 1440, 82 bytes of the third GOP block 1360, and 44 bytes of the third audio block 1350 are combined, the size of the next GOP block or the next audio A combination for at least a portion of the block may be considered. For example, if the size of the next GOP block is 62 (200- (12 + 82 + 44)) bytes or less, the next GOP block may be further combined for generation of the third content block. However, if the size of the next GOP block exceeds 62 bytes, at least a portion of the next audio block may be further combined for the generation of the third content block.

이처럼, 서버(150)는 하나의 GOP 블록이 훼손되지 않도록 디지털 컨텐츠(또는 디지털 컨텐츠의 복수의 복사본들 각각)를 고정 크기의 컨텐츠 블록들로 분할할 수 있다. 분할된 컨텐츠 블록들에는 코드값이 삽입되어 사용자의 고유 식별자를 은닉하기 위해 활용될 수 있으며, 디지털 컨텐츠의 복수의 복사본들 각각에 대해 분할된 컨텐츠 블록들은 가상 파일을 구성하기 위해 조합될 수 있다. 또한, DRM 등을 위한 암호화가 고정 크기의 컨텐츠 블록 단위로 수행될 수 있다.As described above, the server 150 may divide the digital content (or each of the plurality of copies of the digital content) into the fixed size content blocks so that one GOP block is not damaged. A code value may be inserted in the divided content blocks to hide the unique identifier of the user, and the divided content blocks for each of the plurality of copies of the digital content may be combined to form a virtual file. Also, encryption for DRM or the like can be performed in units of a fixed-size content block.

또한, 앞서 설명한 실시예들은 GOP 블록이 훼손되지 않도록 디지털 컨텐츠를 고정 크기의 컨텐츠 블록들로 분할함을 설명하고 있다. 이때, 디지털 컨텐츠는 고정 크기의 배수로 분할될 수도 있다. 예를 들어, 도 13 및 도 14의 실시예에서는 200 byte의 고정 크기로 디지털 컨텐츠를 분할하는 실시예를 설명하였으나, 고정 크기인 200 byte의 배수인 400 byte, 600 byte, 800 byte 등으로 디지털 컨텐츠가 분할될 수도 있다. 예를 들어, 특정 컨텐츠 블록이 512 byte 이상으로 분할될 것이 강제되어 있다면, 서버(150)는 (512*N)의 고정 크기(여기서, N은 자연수)로 디지털 컨텐츠를 분할하여 (512*N)의 고정 크기를 갖는 컨텐츠 블록들을 얻을 수 있다. 다시 말해, 본 발명의 실시예들에서 컨텐츠 블록의 크기는 기설정된 고정 크기의 배수가 될 수 있다. 이 경우에도 컨텐츠 블록에는 GOP가 훼손되지 않도록 비디오 블록들이 포함된 후에 나머지 영역에 오디오 블록들이 포함될 수 있다.In addition, the above-described embodiments explain that the digital content is divided into fixed-size content blocks so that the GOP block is not damaged. At this time, the digital contents may be divided into multiples of a fixed size. For example, in the embodiments shown in FIGS. 13 and 14, the digital content is divided into a fixed size of 200 bytes. However, the digital content may be divided into 400 bytes, 600 bytes, 800 bytes, Lt; / RTI > For example, if a particular content block is forced to be split into more than 512 bytes, the server 150 divides the digital content into a fixed size (512 * N) (where N is a natural number) Lt; RTI ID = 0.0 > of < / RTI > In other words, in the embodiments of the present invention, the size of the content block may be a multiple of a predetermined fixed size. In this case, audio blocks may be included in the remaining area after the video blocks are included so that the GOP is not damaged in the content block.

이처럼 본 발명의 실시예들에 따르면, 서버-클라이언트 환경에서 사용자 고유 식별자가 은닉된 디지털 컨텐츠를 다운로드 방식으로 빠르게 제공할 수 있다. 또한, 동영상과 같은 디지털 컨텐츠에서 GOP(Group of Pictures)를 훼손하지 않으면서도 디지털 컨텐츠를 고정 크기의 블록으로 암호화할 수 있다.As described above, according to the embodiments of the present invention, it is possible to rapidly provide the digital content that has been stored with the user's unique identifier in the server-client environment as a download method. In addition, it is possible to encrypt digital contents into a fixed size block without damaging the GOP (Group of Pictures) in digital contents such as moving pictures.

이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The system or apparatus described above may be implemented as a hardware component, a software component or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

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

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (20)

컨텐츠 분할 방법에 있어서,
복수의 GOP(Group of Pictures) 블록으로 구성된 비디오 데이터와 오디오 데이터를 포함하는 디지털 컨텐츠를 확인하는 단계; 및
상기 디지털 컨텐츠를 고정 크기(fixed-length)를 갖는 복수의 컨텐츠 블록들로 분할하는 단계
를 포함하고,
상기 복수의 GOP 블록 각각은 상기 고정 크기 이하의 크기를 갖고,
상기 분할하는 단계는,
상기 복수의 GOP 블록 중 제1 GOP 블록의 크기가 상기 고정 크기 미만인 경우, 상기 제1 GOP 블록에 상기 오디오 데이터의 제1 부분을 결합하여 상기 고정 크기의 제1 컨텐츠 블록을 생성하는 것
을 특징으로 하는 컨텐츠 분할 방법.
A content division method comprising:
Identifying digital content including video data and audio data composed of a plurality of GOP (Group of Pictures) blocks; And
Dividing the digital content into a plurality of content blocks having a fixed-length
Lt; / RTI >
Wherein each of the plurality of GOP blocks has a size equal to or smaller than the fixed size,
Wherein the dividing step comprises:
And generating the first content block of the fixed size by combining the first portion of the audio data with the first GOP block when the size of the first GOP block is less than the fixed size
Wherein the content distribution method comprises the steps of:
제1항에 있어서,
상기 분할하는 단계는,
상기 제1 GOP 블록의 크기가 상기 고정 크기인 경우, 상기 제1 GOP 블록을 상기 고정 크기의 제1 컨텐츠 블록으로 생성하는 것
을 특징으로 하는 컨텐츠 분할 방법.
The method according to claim 1,
Wherein the dividing step comprises:
And generating the first GOP block as a first content block of the fixed size when the size of the first GOP block is the fixed size
Wherein the content distribution method comprises the steps of:
제1항에 있어서,
상기 오디오 데이터는 복수의 오디오 블록들로 구성되고,
상기 제1 부분은 상기 제1 GOP 블록에 대응하는 제1 오디오 블록의 적어도 일부인 것을 특징으로 하는 컨텐츠 분할 방법.
The method according to claim 1,
Wherein the audio data is composed of a plurality of audio blocks,
Wherein the first portion is at least a portion of a first audio block corresponding to the first GOP block.
제3항에 있어서,
상기 분할하는 단계는,
상기 제1 오디오 블록에서 제1 부분을 제외한 나머지 부분인 제2 부분과 상기 복수의 GOP 블록 중 제2 GOP 블록을 결합하여 제2 블록을 생성하되, 상기 제2 부분과 상기 제2 GOP 블록이 결합된 크기가 상기 고정 크기 미만인 경우, 상기 오디오 데이터의 제3 부분을 더 결합하여 상기 고정 크기의 제2 블록을 생성하는 것
을 특징으로 하는 컨텐츠 분할 방법.
The method of claim 3,
Wherein the dividing step comprises:
A second portion of the first audio block excluding a first portion is combined with a second GOP block of the plurality of GOP blocks to generate a second block, and the second portion and the second GOP block are combined Generating a second block of the fixed size by further combining a third portion of the audio data if the size of the first portion of the audio data is less than the fixed size
Wherein the content distribution method comprises the steps of:
제4항에 있어서,
상기 분할하는 단계는,
상기 제2 부분과 상기 제2 GOP 블록이 결합된 크기가 상기 고정 크기 이상인 경우, 상기 제2 GOP 블록에 상기 제2 부분의 일부분인 제2-1 부분을 결합하여 상기 고정 크기의 제2 블록을 생성하는 것
을 특징으로 하는 컨텐츠 분할 방법.
5. The method of claim 4,
Wherein the dividing step comprises:
When the combined size of the second portion and the second GOP block is equal to or larger than the fixed size, the second GOP block is combined with the second-1 portion, which is a part of the second portion, Creating
Wherein the content distribution method comprises the steps of:
제1항에 있어서,
상기 고정 크기로 분할된 컨텐츠 블록의 단위로 상기 디지털 컨텐츠를 암호화하는 단계
를 더 포함하는 것을 특징으로 하는 컨텐츠 분할 방법.
The method according to claim 1,
Encrypting the digital content in units of content blocks divided by the fixed size
Further comprising the steps of:
제1항에 있어서,
상기 디지털 컨텐츠에 대해, 각각 서로 다른 코드값이 삽입된 복수의 복사본을 관리하는 단계;
상기 디지털 컨텐츠에 대한 클라이언트의 다운로드 요청에 따라 상기 서로 다른 코드값의 조합이 상기 클라이언트와 연관하여 식별되는 사용자의 고유 식별자와 매칭되도록 상기 복수의 복사본의 부분들을 조합하여 상기 디지털 컨텐츠에 대한 가상 파일을 구성하는 단계; 및
상기 구성된 가상 파일의 위치정보와 상기 복수의 복사본에서 상기 조합된 부분들 각각을 식별하기 위한 옵셋(offset) 정보를 생성하여 상기 클라이언트로 제공하는 단계
를 더 포함하고,
상기 가상 파일은, 상기 복수의 복사본들 각각을 상기 고정 크기로 분할하여 생성된 복수의 컨텐츠 블록들의 조합으로 구성되는 것을 특징으로 하는 컨텐츠 분할 방법.
The method according to claim 1,
Managing a plurality of copies of each of the digital contents with different code values inserted therein;
A combination of the different code values is matched with a unique identifier of a user identified in association with the client in accordance with a client download request for the digital content, Comprising; And
And generating offset information for identifying each of the combined parts in the plurality of copies and providing the offset information to the client
Further comprising:
Wherein the virtual file comprises a combination of a plurality of content blocks generated by dividing each of the plurality of copies into the fixed size.
제7항에 있어서,
상기 클라이언트로부터 상기 위치정보에 기반하고, 상기 옵셋 정보를 포함하는 다운로드 요청을 수신하는 단계; 및
상기 복수의 복사본에서 상기 옵셋 정보에 대응하는 부분들을 상기 위치정보를 통해 식별되는 상기 가상 파일로서 상기 클라이언트로 전송하는 단계
를 더 포함하는 것을 특징으로 하는 컨텐츠 분할 방법.
8. The method of claim 7,
Receiving a download request based on the location information from the client and including the offset information; And
Transmitting portions of the plurality of copies corresponding to the offset information to the client as the virtual file identified through the location information
Further comprising the steps of:
제7항에 있어서,
상기 옵셋 정보는, 상기 복수의 복사본에서 상기 조합된 부분들을 식별하기 위한 정보로서, 복사본에서 대응하는 부분이 차지하는 바이트-범위(byte-range)를 포함하는 것을 특징으로 하는 컨텐츠 분할 방법.
8. The method of claim 7,
Wherein the offset information is information for identifying the combined portions in the plurality of copies, and includes a byte-range occupied by a corresponding portion in the copy.
제7항에 있어서,
상기 복수의 복사본 각각은 복수의 청크(chunk)들로 나뉘고,
상기 옵셋 정보는, 상기 복수의 복사본에서 상기 조합된 부분들을 식별하기 위한 정보로서, 복사본에서 대응하는 부분의 청크 넘버(chunk number)를 포함하는 것을 특징으로 하는 컨텐츠 분할 방법.
8. The method of claim 7,
Wherein each of the plurality of copies is divided into a plurality of chunks,
Wherein the offset information is information for identifying the combined parts in the plurality of copies, and includes a chunk number of a corresponding part in the copy.
제7항에 있어서,
상기 가상 파일을 구성하는 단계는,
상기 서로 다른 코드값의 조합이 상기 가상 파일의 적어도 일부의 위치에서 상기 사용자의 고유 식별자에 대응하는 값을 갖도록 상기 복수의 복사본의 부분들을 조합하는 것을 특징으로 하는 컨텐츠 분할 방법.
8. The method of claim 7,
Wherein configuring the virtual file comprises:
And combining the portions of the plurality of copies such that the combination of the different code values has a value corresponding to the unique identifier of the user at a position of at least a part of the virtual file.
제7항에 있어서,
상기 가상 파일을 구성하는 단계는,
상기 서로 다른 코드값을 조합하여 상기 다운로드 요청에 대한 고유값을 생성하고, 상기 고유값을 상기 사용자의 고유 식별자와 매칭하여 관리하는 것을 특징으로 하는 컨텐츠 분할 방법.
8. The method of claim 7,
Wherein configuring the virtual file comprises:
Generating a unique value for the download request by combining the different code values, and managing the unique value by matching with the unique identifier of the user.
제7항에 있어서,
상기 가상 파일을 구성하는 단계는,
상기 조합된 부분들 중 동일한 코드값을 가진 서로 연속된 부분들을 병합하여 하나의 부분으로 조합하고,
상기 옵셋 정보는 상기 병합된 부분을 하나의 부분으로 식별하기 위한 정보를 포함하는 것을 특징으로 하는 컨텐츠 분할 방법.
8. The method of claim 7,
Wherein configuring the virtual file comprises:
Combining the consecutive portions having the same code value out of the combined portions into a single portion,
Wherein the offset information includes information for identifying the merged portion as a single portion.
제1항 내지 제13항 중 어느 한 항의 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.A computer-readable recording medium having recorded thereon a program for causing a computer to execute the method of any one of claims 1 to 13. 컴퓨터로 구현된 컨텐츠 분할 시스템에 있어서,
상기 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
를 포함하고,
상기 적어도 하나의 프로세서는,
복수의 GOP(Group of Pictures) 블록으로 구성된 비디오 데이터와 오디오 데이터를 포함하는 디지털 컨텐츠를 확인하고,
상기 디지털 컨텐츠를 고정 크기(fixed-length)를 갖는 복수의 컨텐츠 블록들로 분할하며,
상기 복수의 GOP 블록 각각은 상기 고정 크기 이하의 크기를 갖고,
상기 적어도 하나의 프로세서는, 상기 디지털 컨텐츠를 분할하기 위해,
상기 복수의 GOP 블록 중 제1 GOP 블록의 크기가 상기 고정 크기 미만인 경우, 상기 제1 GOP 블록에 상기 오디오 데이터의 제1 부분을 결합하여 상기 고정 크기의 제1 컨텐츠 블록을 생성하는 것
을 특징으로 하는 컨텐츠 분할 시스템.
A computer-implemented content division system,
At least one processor configured to execute instructions readable by the computer,
Lt; / RTI >
Wherein the at least one processor comprises:
The digital content including video data and audio data composed of a plurality of GOP (Group of Pictures) blocks is confirmed,
Dividing the digital content into a plurality of content blocks having a fixed-length,
Wherein each of the plurality of GOP blocks has a size equal to or smaller than the fixed size,
Wherein the at least one processor is further configured to:
And generating the first content block of the fixed size by combining the first portion of the audio data with the first GOP block when the size of the first GOP block is less than the fixed size
And the content distribution system.
제15항에 있어서,
상기 적어도 하나의 프로세서는, 상기 디지털 컨텐츠를 분할하기 위해,
상기 제1 GOP 블록의 크기가 상기 고정 크기인 경우, 상기 제1 GOP 블록을 상기 고정 크기의 제1 컨텐츠 블록으로 생성하는 것
을 특징으로 하는 컨텐츠 분할 시스템.
16. The method of claim 15,
Wherein the at least one processor is further configured to:
And generating the first GOP block as a first content block of the fixed size when the size of the first GOP block is the fixed size
And the content distribution system.
제15항에 있어서,
상기 오디오 데이터는 복수의 오디오 블록들로 구성되고,
상기 제1 부분은 상기 제1 GOP 블록에 대응하는 제1 오디오 블록의 적어도 일부인 것을 특징으로 하는 컨텐츠 분할 시스템.
16. The method of claim 15,
Wherein the audio data is composed of a plurality of audio blocks,
Wherein the first portion is at least a portion of a first audio block corresponding to the first GOP block.
제17항에 있어서,
상기 적어도 하나의 프로세서는, 상기 디지털 컨텐츠를 분할하기 위해,
상기 제1 오디오 블록에서 제1 부분을 제외한 나머지 부분인 제2 부분과 상기 복수의 GOP 블록 중 제2 GOP 블록을 결합하여 제2 블록을 생성하되, 상기 제2 부분과 상기 제2 GOP 블록이 결합된 크기가 상기 고정 크기 미만인 경우, 상기 오디오 데이터의 제3 부분을 더 결합하여 상기 고정 크기의 제2 블록을 생성하는 것
을 특징으로 하는 컨텐츠 분할 시스템.
18. The method of claim 17,
Wherein the at least one processor is further configured to:
A second portion of the first audio block excluding a first portion is combined with a second GOP block of the plurality of GOP blocks to generate a second block, and the second portion and the second GOP block are combined Generating a second block of the fixed size by further combining a third portion of the audio data if the size of the first portion of the audio data is less than the fixed size
And the content distribution system.
제18항에 있어서,
상기 적어도 하나의 프로세서는, 상기 디지털 컨텐츠를 분할하기 위해,
상기 제2 부분과 상기 제2 GOP 블록이 결합된 크기가 상기 고정 크기 이상인 경우, 상기 제2 GOP 블록에 상기 제2 부분의 일부분인 제2-1 부분을 결합하여 상기 고정 크기의 제2 블록을 생성하는 것
을 특징으로 하는 컨텐츠 분할 시스템.
19. The method of claim 18,
Wherein the at least one processor is further configured to:
When the combined size of the second portion and the second GOP block is equal to or larger than the fixed size, the second GOP block is combined with the second GOP portion, which is a part of the second portion, Creating
And the content distribution system.
제15항에 있어서,
상기 적어도 하나의 프로세서는,
상기 디지털 컨텐츠에 대해, 각각 서로 다른 코드값이 삽입된 복수의 복사본을 관리하고,
상기 디지털 컨텐츠에 대한 클라이언트의 다운로드 요청에 따라 상기 서로 다른 코드값의 조합이 상기 클라이언트와 연관하여 식별되는 사용자의 고유 식별자와 매칭되도록 상기 복수의 복사본의 부분들을 조합하여 상기 디지털 컨텐츠에 대한 가상 파일을 구성하며,
상기 구성된 가상 파일의 위치정보와 상기 복수의 복사본에서 상기 조합된 부분들 각각을 식별하기 위한 옵셋(offset) 정보를 생성하여 상기 클라이언트로 제공하고,
상기 가상 파일은, 상기 복수의 복사본들 각각을 상기 고정 크기로 분할하여 생성된 복수의 컨텐츠 블록들의 조합으로 구성되는 것을 특징으로 하는 컨텐츠 분할 시스템.
16. The method of claim 15,
Wherein the at least one processor comprises:
Managing a plurality of copies in which different code values are inserted for the digital contents,
A combination of the different code values is matched with a unique identifier of a user identified in association with the client in accordance with a client download request for the digital content, And,
And generating offset information for identifying each of the combined parts in the plurality of copies and providing the offset information to the client,
Wherein the virtual file comprises a combination of a plurality of content blocks generated by dividing each of the plurality of copies into the fixed size.
KR1020160054776A 2016-05-03 2016-05-03 Method and system for dividing digital content for fixed-length block encryption KR20170124839A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160054776A KR20170124839A (en) 2016-05-03 2016-05-03 Method and system for dividing digital content for fixed-length block encryption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160054776A KR20170124839A (en) 2016-05-03 2016-05-03 Method and system for dividing digital content for fixed-length block encryption

Publications (1)

Publication Number Publication Date
KR20170124839A true KR20170124839A (en) 2017-11-13

Family

ID=60386095

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160054776A KR20170124839A (en) 2016-05-03 2016-05-03 Method and system for dividing digital content for fixed-length block encryption

Country Status (1)

Country Link
KR (1) KR20170124839A (en)

Similar Documents

Publication Publication Date Title
CN103403712B (en) File chunk based on content
US10972807B2 (en) Dynamic watermarking of digital media content at point of transmission
US8688991B1 (en) Media player embodiments and secure playlist packaging
CN103583051B (en) Playlists for real-time or near real-time streaming
US10136098B2 (en) Integrity verification of an audio-visual data stream
US8001608B2 (en) Secure streaming container
US8595492B2 (en) On-demand protection and authorization of playback of media assets
KR20170056613A (en) Media decoding control with hardware-protected digital rights management
US8638935B2 (en) System and method for key space division and sub-key derivation for mixed media digital rights management content
CN107222759B (en) Method, system, device and medium for encrypting and decrypting media file
US20200029114A1 (en) Method, system, and non-transitory computer-readable record medium for synchronization of real-time live video and event data
KR101668957B1 (en) Contents streaming service method and system for reducing communication cost
KR20050042377A (en) Devided data transmission system and method for streaming service on a low speed channel
US10262115B2 (en) Secure connected digital media platform
Senthilnathan et al. An enhancing reversible data hiding for secured data using shuffle block key encryption and histogram bit shifting in cloud environment
KR101998303B1 (en) Method and system for managing sliding window for time machine function
US11881940B2 (en) Method and system for providing secure message
KR102134250B1 (en) Method and system for reproducing streaming content
CN109040087B (en) File encryption and decryption method and device
KR20170124839A (en) Method and system for dividing digital content for fixed-length block encryption
KR101564731B1 (en) System and method for tracking a downloaded digital media file
KR101833386B1 (en) Method and system for providing digital content inserted identifier of user
KR101701625B1 (en) Method and system for reproducing contents by secure acquiring decryption key for encrypted contents
KR101771348B1 (en) Method and system for packing package file
JP2014175757A (en) Digital watermark processing system for generating digital watermark by coupling divided elements, server, program and method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2018101001107; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20180312

Effective date: 20190802