본 발명은 디지털 컨텐츠 복제 방지 장치 및 방법에 관한 것으로서, 보다 상세하게는 클라이언트에게 제공되는 디지털 컨텐츠의 불법 복제를 효과적으로 차단하기 위한 디지털 컨텐츠 복제 방지 장치 및 방법에 관한 것이다.The present invention relates to a digital content copy protection device and method, and more particularly, to a digital content copy protection device and method for effectively preventing illegal copying of digital content provided to a client.
현대인들은 방송, 출판 등과 같은 각종 미디어를 통해 제공되는 정보의 홍수 속에서 살고 있다. 각종 미디어를 통해 제공되는 정보를 통합하여 한꺼번에 공급하고자 하는 정보 공급자가 생겨났으며, 정보 공급자에 의해 공급되는 디지털 컨텐츠 중 원하는 컨텐츠만을 선택적으로 제공받고자 하는 사용자가 생기게 되었다.Modern people live in the flood of information provided through various media such as broadcasting and publishing. There is an information provider who wants to supply the information provided through various media at one time, and a user who wants to selectively receive only the desired content among the digital content provided by the information provider has been created.
이에 따라 각종 정보를 디지털 컨텐츠로 변환한 후 이 디지털 컨텐츠를 각각의 사용자에게 공급한 수 있도록 저장하는 정보 공급자와, 네트워크를 통해 정보 공급자로부터 디지털 컨텐츠를 제공받는 사용자로 이루어진 디지털 컨텐츠 전송시스템들이 출현하게 되었다.This will lead to the emergence of digital content delivery systems consisting of information providers that convert various information into digital content and store the digital content for each user, and users who receive digital content from the information provider over the network. It became.
이와 같은, 디지털 컨텐츠 전송 시스템은 사용자에게 디지털 컨텐츠를 손쉽게 다운로드(download)받을 수 있는 응용 프로그램을 공급하였다.Such a digital content delivery system has provided a user with an application that can easily download digital content.
또한, 네트워크에 의해 디지털 컨텐츠 전송 시스템과 접속된 사용자는 다운로드된 응용 프로그램을 통해 원하고자 하는 모든 정보를 얻을 수 있게 되었다.In addition, the user connected to the digital content delivery system by the network can obtain all the desired information through the downloaded application program.
이러한, 디지털 컨텐츠 전송 시스템에서 공급하고 있는 디지털 컨텐츠는 무료 또는 유료로 사용자에게 공급된다.The digital content supplied by the digital content transmission system is supplied to the user for free or for a fee.
유료로 공급되는 디지털 컨텐츠는 디지털 컨텐츠 전송 시스템에 의해 각각의 서비스 요금이 정해진다.For digital content that is supplied for a fee, each service fee is determined by the digital content transmission system.
이렇게 서비스 요금이 정해진 디지털 컨텐츠를 사용자가 전송받게 되면 서비스 서버는 사용자의 정보 이용량에 따라 서비스 요금을 누적시켜 사용자에게 부과한다.When the user receives the digital content with the predetermined service fee, the service server accumulates the service fee according to the user's information usage and charges the user.
그러나, 네트워크를 이용하여 상업적으로 디지털 컨텐츠를 제공하는 시스템에 사용자가 접속해서 유료용 디지털 컨텐츠를 전송받는 경우, 대부분의 사용자가 복제 형식으로 다른 사람에게 유료용 디지털 컨텐츠를 무단으로 배포하는 문제점이 있다.However, when a user accesses a system that provides digital content commercially using a network and receives paid digital content, most users have a problem of distributing paid digital content to others in a duplicate form without permission. .
또한, 복제된 디지털 컨텐츠에 의한 사용에 대한 공급자의 피해가 심각하나이를 근본적으로 방지할 수 없는 문제점도 있다.In addition, there is a problem that the supplier is seriously affected by the use of the copied digital content, but there is a problem that can not be fundamentally prevented.
따라서, 본 발명은 종래 기술의 제반 문제점을 해결하기 위하여 안출한 것으로서, 다단계의 암호화를 통해 생성된 파일 암호화키에 의해 디지털 컨텐츠 파일을 암호화하기 위한 디지털 컨텐츠 복제 방지 장치 및 방법을 제공함에 그 목적이 있다.Accordingly, an object of the present invention is to provide an apparatus and method for preventing digital content copying for encrypting a digital content file by using a file encryption key generated through multi-level encryption. have.
또한, 본 발명의 다른 목적은 암호화된 디지털 컨텐츠 파일을 복호화하기 위한 사용자 권한키를 클라이언트 단말기의 시스템 정보에 의해 생성하기 위한 디지털 컨텐츠 복제 장치 및 방법을 제공함에 있다.Another object of the present invention is to provide a digital content duplication apparatus and method for generating a user authorization key for decrypting an encrypted digital content file by system information of a client terminal.
도 1은 본 발명에 따른 디지털 컨텐츠 불법 복제 방지 장치의 구성 블록도.1 is a block diagram of a digital content piracy prevention device according to the present invention.
도 2는 클라이언트의 서비스 등록을 위한 개략적 흐름 구성도.2 is a schematic flow diagram for registering a service of a client.
도 3은 투피시 블록 암호화기의 개략적 구성도.3 is a schematic block diagram of a two-pass block encryptor.
도 4는 클라이언트의 서비스 등록 취소를 위한 개략적 흐름 구성도.4 is a schematic flow diagram for canceling service registration of a client;
도 5는 클라이언트의 디지털 컨텐츠 파일을 제공받기 위한 개략적 흐름 구성도.5 is a schematic flow diagram for receiving a digital content file of a client.
도 6은 암호화된 디지털 컨텐츠 파일의 헤더 구성을 나타낸 도면.6 is a diagram illustrating a header configuration of an encrypted digital content file.
도 7은 본 발명에 따른 디지털 컨텐츠 복제 방지를 수행하기 위한 플로우 챠트.7 is a flow chart for performing digital content copy protection according to the present invention.
도 8은 디지털 컨텐츠 파일 암호화를 위한 파일 암호화키 생성을 수행하기 위한 플로우 챠트.8 is a flowchart for performing file encryption key generation for digital content file encryption.
도 9는 인증 서버에 의한 사용자 권한 정보 생성을 수행하기 위한 플로우 챠트.9 is a flow chart for performing user authority information generation by the authentication server.
도 10은 본 발명에 따른 디지털 컨텐츠 파일의 복호화를 수행하기 위한 플로우 챠트.10 is a flowchart for performing decoding of a digital content file according to the present invention.
<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>
100 : 인증 서버100: authentication server
102 : 디지털 컨텐츠 제공 서버102: digital content providing server
104 : 클라이언트104: client
106 :클라이언트 정보 데이터베이스106: Client Information Database
108 : 디지털 컨텐츠 정보 데이터베이스108: digital content information database
110 : 인증 정보 데이터베이스110: authentication information database
상술한 목적들을 달성하기 위한 본 발명의 인증 서버는 네트워크를 통해 접속된 클라이언트의 사용자 정보 및 디지털 컨텐츠 제공 서버의 정보에 의해 서비스 등록키를 인증서버에 의해 생성하고, 클라이언트 단말기의 시스템 정보에 의해 암호화된 디지털 컨텐츠 파일을 복호화하기 위한 사용자 권한키를 생성한다.In order to achieve the above objects, the authentication server of the present invention generates a service registration key by an authentication server based on user information of a client connected through a network and information of a digital content providing server, and encrypts the information by a system information of a client terminal. A user authorization key for decrypting the digital content file is generated.
디지털 컨텐츠 제공 서버는 서비스 등록키를 다단계 암호화하여 파일 암호화키를 생성함에 의해 디지털 컨텐츠 파일을 암호화하여 클라이언트에게 제공한다.The digital content providing server encrypts the digital content file by providing a file encryption key by encrypting the service registration key in multiple stages and provides the encrypted content file to the client.
또한, 클라이언트는 사용자 권한키를 다단계 암호화 및 복호화하여 파일 복호화키를 생성하여 암호화된 디지털 컨텐츠 파일을 복호화함에 특징이 있다.In addition, the client may generate a file decryption key by multi-level encryption and decryption of the user authorization key to decrypt the encrypted digital content file.
또한, 본 발명은 서비스 등록키, 파일 암호화키 및 파일 복호화키 생성을 위해 투피시 알고리즘이 사용된다.In addition, in the present invention, a two-pass algorithm is used to generate a service registration key, a file encryption key, and a file decryption key.
이하, 본 발명에 따른 디지털 콘텐츠 불법 복제 방지 장치 및 방법을 바람직한 일 실시예를 참조하여 상세히 설명한다.Hereinafter, an apparatus and method for preventing illegal copying of digital content according to the present invention will be described in detail with reference to a preferred embodiment.
도 1은 본 발명에 따른 디지털 컨텐츠 불법 복제 방지 장치의 구성 블록도이고, 도 2는 클라이언트의 서비스 등록을 위한 개략적 흐름 구성도이며, 도 3은 투피시 블록 암호화기의 개략적 구성도이다.FIG. 1 is a block diagram illustrating an apparatus for preventing illegal copying of digital content according to the present invention, FIG. 2 is a schematic flow diagram for registering a service of a client, and FIG. 3 is a schematic block diagram of a two peer block encryptor.
도 4는 클라이언트의 서비스 등록 취소를 위한 개략적 흐름 구성도이고, 도 5는 클라이언트의 디지털 컨텐츠 파일을 제공받기 위한 개략적 흐름 구성도이며, 도 6은 암호화된 디지털 컨텐츠 파일의 헤더 구성을 나타낸 도면이다.4 is a schematic flow diagram for canceling service registration of a client, FIG. 5 is a schematic flow diagram for receiving a digital content file of a client, and FIG. 6 is a diagram illustrating a header structure of an encrypted digital content file.
도 1에 도시된 바와 같이, 본 발명은 인증 서버(100), 디지털 컨텐츠 제공 서버(102), 클라이언트(104), 클라이언트 정보 데이터베이스(106), 디지털 컨텐츠 정보 데이터베이스(108) 및 인증 정보 데이터베이스(110)를 포함하여 구성된다.As shown in FIG. 1, the present invention provides an authentication server 100, a digital content providing server 102, a client 104, a client information database 106, a digital content information database 108, and an authentication information database 110. It is configured to include).
여기서, 인증 서버(100)는 디지털 컨텐츠 제공 서버(102)를 통해 제공되는 디지털 컨텐츠 파일의 암호화 및 클라이언트(104)의 파일 사용 권한 정보 생성을 위한 시드키(Seed key)(Cap ID)를 생성하도록 구성된다.Here, the authentication server 100 generates a seed key (Cap ID) for encrypting the digital content file provided through the digital content providing server 102 and generating file permission information of the client 104. It is composed.
여기서, 시드키(Cap ID)는 디지털 컨텐츠 정보를 제공받거나 또는 암호화된 디지털 컨텐츠를 복호화하기 위한 서비스를 제공받기 위한 서비스 등록키이다.Here, the seed key Cap ID is a service registration key for receiving digital content information or providing a service for decrypting encrypted digital content.
또한, 인증 서버(100)는 암호화된 디지털 컨텐츠 파일을 복호화하기 위해 일정 암호화 알고리즘에 의해 시드키(Cap ID) 및 클라이언트(104)의 시스템 정보를 암호화하여 디지털 컨텐츠 파일의 사용 권한키(이하, 토큰이라 칭함)를 생성하고, 생성된 토큰을 클라이언트(104)로 전송하도록 구성된다.In addition, the authentication server 100 encrypts the seed key (Cap ID) and the system information of the client 104 by a predetermined encryption algorithm to decrypt the encrypted digital content file to use the authority key (hereinafter, token) of the digital content file. And transmit the generated token to the client 104.
여기서, 토큰 생성을 위한 클라이언트(104)의 시스템 정보는 CPU의 크기, 개수 및 하드디스크의 페이지 크기 정보 등이 포함하여 구성된다. 또한, 토큰 생성을 위한 암호화 알고리즘은 투피시(twofish)이다.In this case, the system information of the client 104 for token generation includes information on the size, number of CPUs, and page size information of the hard disk. Also, the encryption algorithm for token generation is twofish.
디지털 컨텐츠 제공 서버(102)는 투피시 알고리즘을 이용하여 인증 서버(100)로부터 전송된 시드키(Cap ID)를 4단계의 암호화를 통해 파일 암호화키(FKey1)를 생성하도록 구성된다.Digital content providing server 102 is configured to generate a file encryption key (FKey1) through a four-step encryption of the seed key (Cap ID) transmitted from the authentication server 100 using a two-fiche algorithm.
클라이언트(104)는 인증 서버(100)로부터 전송된 토큰을 단말기 내부의 저장 영역인 레지스트리에 저장하고, 토큰 및 디지털 컨텐츠 제공 서버(102)로부터 다운로딩된 암호화된 디지털 컨텐츠 파일 헤더 정보에 따른 암호화 및 복호화를 통해 파일 암호화키(FKey1)에 상응하는 파일 복호화키(FKey2)를 생성하여 암호화된 디지털 컨텐츠 파일을 복호화하도록 구성된다.The client 104 stores the token transmitted from the authentication server 100 in a registry that is a storage area inside the terminal, encrypts the token according to the encrypted digital content file header information downloaded from the digital content providing server 102, and By decrypting, a file decryption key FKey2 corresponding to the file encryption key FKey1 is generated to decrypt the encrypted digital content file.
여기서, 본 발명은 파일 암호화키(FKey1) 생성시 키의 암호화 및 복호화를 위해 투 피시 알고리즘을 사용한다.Here, the present invention uses a two-fish algorithm for encrypting and decrypting a key when generating a file encryption key (FKey1).
클라이언트 정보 데이터베이스(106)는 클라이언트(104)의 사용자 정보 및 해당 시드키(Cap ID)를 저장하고, 디지털 컨텐츠 정보 데이터베이스(108)는 파일 ID에 따라 분류된 해당 디지털 컨텐츠 정보가 저장되도록 구성된다.The client information database 106 stores user information of the client 104 and a corresponding seed key Cap ID, and the digital content information database 108 is configured to store corresponding digital content information classified according to the file ID.
또한, 인증 정보 데이터베이스(110)는 클라이언트(104)의 해당 서비스 등록키 즉, 시드키(Cap ID)를 저장하도록 구성된다.In addition, the authentication information database 110 is configured to store a corresponding service registration key, that is, a seed key (Cap ID) of the client 104.
이와 같이 구성되는 본 발명에 따른 디지털 컨텐츠 복제 방지 장치의 동작을 첨부 도면을 참조하여 설명하면 다음과 같다.Referring to the accompanying drawings, the operation of the digital content copy protection device according to the present invention configured as described above is as follows.
먼저, 디지털 컨텐츠 제공 서버(102)로부터의 디지털 컨텐츠 파일을 제공받기 위한 클라이언트(104)의 서비스 등록 과정을 도 2를 참조하여 설명한다.First, a service registration process of the client 104 for receiving a digital content file from the digital content providing server 102 will be described with reference to FIG. 2.
클라이언트(104)는 디지털 컨텐츠 제공 서버(102)로부터 전송되는 디지털 컨텐츠 파일을 실행시키기 위한 디지털 컨텐츠 실행 프로그램을 다운로딩하고, 다운로딩된 실행 프로그램을 실행시킴에 따라 디지털 컨텐츠 실행 프로그램을 설치한다.The client 104 downloads a digital content execution program for executing the digital content file transmitted from the digital content providing server 102, and installs the digital content execution program as the downloaded execution program is executed.
이때, 디지털 컨텐츠 실행 프로그램의 다운로딩은 서비스 등록 과정 내에 포함되어 실행될 수 있을 뿐만 아니라 서비스 등록 이전에 미리 다운로딩되어 설치될 수 있음은 자명하다.At this time, it is apparent that the downloading of the digital content execution program may be included in the service registration process and executed, as well as being downloaded and installed in advance before the service registration.
여기서, 디지털 컨텐츠 실행 프로그램은 MP3 플레이어, 미디어 플레이어 또는 리얼 플레이어 등이 있다.Here, the digital content execution program may be an MP3 player, a media player or a real player.
이어, 클라이언트(104)는 네트워크 예를 들어, 인터넷 접속을 통해 디지털 컨텐츠 제공 서버(102)에 접속하고, 사용자 정보를 입력하여(단계 200) 서비스 등록을 요청한다(단계 202).Subsequently, the client 104 accesses the digital content providing server 102 through a network, for example, an internet connection, inputs user information (step 200), and requests service registration (step 202).
여기서, 사용자 정보는 적어도 클라이언트(104)의 성명, ID, 패스워드 및 주민등록번호를 포함한다.Here, the user information includes at least the name, ID, password and social security number of the client 104.
디지털 컨텐츠 제공 서버(102)는 클라이언트(104)로부터 입력되는 사용자 정보를 클라이언트 정보 데이터베이스(106)에 저장하고, 그 중 주민등록번호, 클라이언트 성명(또는 ID) 및 패스워드와 디지털 컨텐츠 제공 서버 번호(SP_NO)를 인증 서버(100)로 전송함에 따라 인증 사용자 등록을 요청한다(단계 204).The digital content providing server 102 stores the user information input from the client 104 in the client information database 106, among which the social security number, client name (or ID) and password and digital content providing server number (SP_NO) are stored. An authentication user registration is requested as it is transmitted to the authentication server 100 (step 204).
여기서, 디지털 컨텐츠 제공 서버 번호(SP_NO)는 인증 서버(100)에 네트워크 접속된 디지털 컨텐츠 제공 서버가 복수개 존재하는 경우 이를 구별하기 위한 정보이다.Here, the digital content providing server number SP_NO is information for distinguishing a plurality of digital content providing servers network-connected to the authentication server 100.
인증 서버(100)는 디지털 컨텐츠 제공 서버(102)로부터 요청된 인증 사용자 등록을 위해 시드키(Cap ID)를 생성한다.The authentication server 100 generates a seed key (Cap ID) for authentication user registration requested from the digital content providing server 102.
즉, 인증 서버(100)는 수학식 1에서와 같이, 디지털 컨텐츠 제공 서버(102)로부터 전송된 서비스 제공 서버 번호(SP_NO), 주민등록번호 및 클라이언트의 성명 를 투피시 알고리즘에 따른 제1 설정키(auLKey)에 의해 암호화를 수행하여 시드키(Cap ID)를 생성한다(단계 206).That is, as shown in Equation 1, the authentication server 100 sets the service providing server number SP_NO, the social security number, and the name of the client, which are transmitted from the digital content providing server 102, according to the first setting key (auLKey). Encrypt to generate a seed key (Cap ID) (step 206).
여기서, 제1 설정키(auLKey)는 프로그램에 의해 미리 설정된 키값으로 설정될 수 있다.Here, the first setting key aulKey may be set to a key value preset by a program.
이때, 괄호 안의 숫자는 바이트(Byte) 단위를 나타내고, 미리 설정된 키 값(auLKey)은 암호화를 위해 프로그래머(programmer) 등에 의해 미리 정의된 값이며, E는 암호화(Encryption)의 약자이다.In this case, numbers in parentheses indicate a byte unit, and a preset key value (auLKey) is a value predefined by a programmer or the like for encryption, and E stands for encryption.
여기서, 투피시 알고리즘은 데이터 암호화 표준(Data Encryption Standards)을 대체하기 위해 미국의 상무부 기술 표준국(NIST)에서 발표한 ASE(Advanced Encryption Standard)에서 채택된 알고리즘이다.Here, the two-fiche algorithm is an algorithm adopted by the Advanced Encryption Standard (ASE) issued by the US Department of Commerce's Technical Standards Bureau (NIST) to replace the Data Encryption Standards.
투피시 알고리즘은 128비트(bits)의 대칭형 블록 암호기이고, 128비트, 192비트 및 256 비트 등의 다양한 키 길이를 가지며, 다양한 소프트웨어 및 하드웨어의 플랫폼에 효율적이다.The two-fiche algorithm is a 128-bit symmetric block encryptor, has various key lengths such as 128-bit, 192-bit and 256-bit, and is efficient for various software and hardware platforms.
또한, 투피시 블록 암호화기의 구조는 도 3에 도시된 바와 같이, 전단사 기능의 에프 함수와 함께 하는 16순환 페이스텔(feistel) 망구조를 갖고, 입출력부에 부가 화이테닝부(whitening)를 가진다.In addition, the structure of the two-fiche block cipher has a 16-cycle Fiestel network structure with the F function of the shear yarn function, as shown in Figure 3, and the additional whitening portion (whitening) to the input and output unit Have
여기서, 페이스텔 망은 복수개의 에스-박스(S-box), 엠디에스(MDS) 행렬 및 피에이치티(PHT)를 포함하여 구성된다.In this case, the facetel network includes a plurality of S-boxes, an MDS matrix, and PHT.
이와 같은 구성을 갖는 투피시 블록 암호화기에 따른 암호문 생성 과정을 개략적으로 설명한다.The ciphertext generation process according to the two-fiche block encryptor having such a configuration will be described schematically.
원문서는 4r의 32 비트 단어로 나누어지고, 입력 화이테닝 단계에서 이들 4개이 키 단어와 배타 논리합을 한다. 이후에 16번의 순환이 순차적으로 수행되는데, 각 라운드에서는 왼쪽의 두 개의 단어는 투피시의 가장 중요한 부분인 g함수의 입력으로 사용된다.The original document is divided into 32 bit words of 4r, and these four are exclusive ORs with the key words in the input whitening step. Thereafter, 16 cycles are performed sequentially. In each round, the two words on the left are used as inputs to the function g, the most important part of the tuffy.
g 함수는 4개의 바이트 와이드 키 독립 에스 박스로 구성되며, 이후 엠디에스 행렬에 근간하는 하나의 선형 혼합 단계가 수행된다. 두 개의 g 함수의 결과는 피에이치티를 사용하여 조합되고, 두 개의 키워드가 더해진다.The g function consists of four byte wide key independent S-boxes, and then one linear mixing step based on the MS matrix is performed. The results of the two g functions are combined using PA, and two keywords are added.
이 두 개의 결과는 배타적 논리합이 되어 오른쪽 단어(먼저, 그들 중 하나는 1비트 왼쪽으로 회전하고, 그 후에 다른 것은 오른쪽으로 회전한다)와 배타 논리합이 된다.These two results are the exclusive OR, which is the right word (first of which rotates one bit to the left and then the other to the right) and the exclusive OR.
이어, 다음 처리 단계를 위해서 왼쪽 반쪽과 오른쪽 반쪽이 바뀌고, 모든 처리 단계 이후 마지막 처리 단계는 바꿈이 반대로 되어진다.The left and right halves are then swapped for the next processing step, and the last processing step after all processing steps is reversed.
그리고, 4개의 단어는 암호문을 생성하기 위해 4개 이상의 키 단어와 배타적 논리합이 수행된다.Then, the four words are exclusive OR with four or more key words to generate the cipher text.
인증 서버(100)는 상술한 바와 같은 동작을 수행하는 투피시 알고리즘에 의해 생성된 시드키(Cap ID)와 사용자 인증 등록 완료 메시지를 생성하여(단계 208) 디지털 컨텐츠 제공 서버(102)로 전송한다(단계 210).The authentication server 100 generates a seed key (Cap ID) generated by the two-pass algorithm which performs the above-described operation and a user authentication registration completion message (step 208), and transmits it to the digital content providing server 102. (Step 210).
디지털 컨텐츠 제공 서버(102)는 인증 서버(100)로부터의 시드키(Cap ID)를 클라이언트 정보 데이터베이스(106)에 저장한 후(단계 212), 서비스 등록 완료 메시지를 생성하여(단계 214) 클라이언트(104)에게 전송한다(단계 216).The digital content providing server 102 stores the seed key (Cap ID) from the authentication server 100 in the client information database 106 (step 212), and generates a service registration completion message (step 214). 104) (step 216).
이어, 도 4를 참조하여 클라이언트(104)의 서비스 등록 취소 요청에 따른 동작을 설명한다.Next, an operation according to the service registration cancellation request of the client 104 will be described with reference to FIG. 4.
먼저, 클라이언트(104)가 사용자 정보 즉, 주민등록번호 및 패스워드를 입력하고(단계 400), 서비스 등록 요청 신호를 디지털 컨텐츠 제공 서버(102)로 전송한다(단계 402).First, the client 104 inputs user information, that is, a social security number and a password (step 400), and transmits a service registration request signal to the digital content providing server 102 (step 402).
디지털 컨텐츠 제공 서버(102)는 클라이언트(104)로부터의 주민등록번호 및 패스워드와 클라이언트 정보 데이터베이스(106)에 저장되어 있는 클라이언트 정보를 비교하여 클라이언트(104)가 서비스 등록자인지를 판단한다(단계 404).The digital content providing server 102 compares the social security number and password from the client 104 with the client information stored in the client information database 106 to determine whether the client 104 is a service registrant (step 404).
클라이언트(104)가 서비스 등록자인 경우, 디지털 컨텐츠 제공 서버(102)는 클라이언트(104)의 해당 시드키(Cap ID)를 검색하고, 디지털 컨텐츠 제공 서버 번호(SP_NO), 주민등록번호 및 시드키(Cap ID)를 인증 서버(100)로 전송함에 따라(단계 406) 사용자 인증 취소를 요청한다(단계 408).If the client 104 is a service registrant, the digital content providing server 102 retrieves the corresponding seed key (Cap ID) of the client 104, and the digital content providing server number (SP_NO), social security number and seed key (Cap ID). In step 406, the user authentication request is canceled (step 408).
인증 서버(100)는 디지털 컨텐츠 제공 서버(102)로부터의 사용자 인증 취소 요청신호에 따라 인증 정보 데이터베이스(110)를 검색하여 클라이언트(104)가 인증 사용자인지를 판단한다(단계 410).The authentication server 100 searches the authentication information database 110 according to the user authentication cancellation request signal from the digital content providing server 102 to determine whether the client 104 is an authentication user (step 410).
클라이언트(104)가 인증 사용자인 경우, 인증 서버(100)는 클라이언트(104)의 사용자 인증 정보를 삭제함에 따라 사용자 인증 취소를 수행하고(단계 412), 사용자 인증 취소 완료 메시지를 생성하여 디지털 컨텐츠 제공 서버(102)로 전송한다(단계 414).If the client 104 is an authenticated user, the authentication server 100 performs user authentication cancellation according to deleting the user authentication information of the client 104 (step 412), and generates a user authentication cancellation completion message to provide digital content. Send to server 102 (step 414).
디지털 컨텐츠 제공 서버(102)는 인증 서버(100)로부터의 사용자 인증 취소 완료 메시지에 따라 서비스 등록 취소 완료 메시지를 생성하고(단계 418), 생성된 서비스 등록 취소 완료 메시지를 클라이언트(104)에세 전송함에 따라 클라이언트(104) 의 서비스 등록 취소가 완료된다(단계 420).The digital content providing server 102 generates a service registration cancellation completion message according to the user authentication cancellation completion message from the authentication server 100 (step 418), and transmits the generated service registration cancellation completion message to the client 104. Accordingly, service registration cancellation of the client 104 is completed (step 420).
이어, 서비스 등록이 완료된 클라이언트(104)가 디지털 컨텐츠 제공 서버(102)로부터의 디지털 컨텐츠 파일을 제공받아 실행하는 동작을 도 5를 참조하여 설명한다.Next, an operation of receiving and executing a digital content file from the digital content providing server 102 by the client 104 having completed service registration will be described with reference to FIG. 5.
먼저, 클라이언트(104)는 네트워크를 통해 디지털 컨텐츠 제공 서버(102)에접속한 후 ID 및 패스워드 입력 등에 따른 로그인을 수행한 후 제공되는 다양한 디지털 컨텐츠 파일 중 어느 하나를 선택하는 파일 요청 신호를 입력한다(단계 500).First, the client 104 connects to the digital content providing server 102 through a network, logs in according to ID and password input, and then inputs a file request signal for selecting any one of various digital content files provided. (Step 500).
디지털 컨텐츠 제공 서버(102)는 클라이언트(104)로부터 입력되는 ID 및 패스워드를 클라이언트 정보 데이터베이스(106)에 저장되어 있는 해당 정보와 비교함에 따라 서비스 등록 여부를 판단한다(단계 502).The digital content providing server 102 determines whether to register a service by comparing the ID and password input from the client 104 with the corresponding information stored in the client information database 106 (step 502).
클라이언트(104)가 서비스 등록자인 경우, 디지털 컨텐츠 제공 서버(102)는 클라이언트(104)가 요청한 해당 디지털 컨텐츠 파일을 암호화하기 위한 파일키(FKey1)를 생성한다(단계 504).If the client 104 is a service registrant, the digital content providing server 102 generates a file key FKey1 for encrypting the corresponding digital content file requested by the client 104 (step 504).
즉, 디지털 컨텐츠 제공 서버(102)는 파일 암호화키(FKey1) 생성을 위해 시드키(Cap ID) 및 클라이언트의 사용자 정보 등을 투피시 알고리즘에 의해 다단계 암호화를 수행하는데, 이를 상세히 설명하면 다음과 같다.That is, the digital content providing server 102 performs multi-level encryption on the seed key Cap ID and the user information of the client to generate a file encryption key FKey1 by a two-pass algorithm, which will be described in detail as follows. .
먼저, 디지털 컨텐츠 제공 서버(102)는 클라이언트 정보 데이터베이스(106)에 저장되어 있는 클라이언트(104)의 해당 시드키(Cap ID)를 제2 설정키(asUkey)을 이용하여 암호화함에 따라 제1 파일 암호화키(DasUKey1)를 생성한다.First, the digital content providing server 102 encrypts the first file by encrypting the corresponding seed key Cap ID of the client 104 stored in the client information database 106 using the second setting key asUkey. Create a key (DasUKey1).
이때, 제2 설정키(asUkey)는 시드키(Cap ID) 생성시의 제1 설정키(auLKey)와 동일하도록 구성되거나 또는 다르게 구성될 수 있다.In this case, the second setting key asUkey may be configured to be the same as the first setting key aulKey when generating the seed key Cap ID, or may be configured differently.
이어, 디지털 컨텐츠 제공 서버(102)는 수학식 2에서와 같이, 생성된 제1 파일 암호화키(DasUKey1)를 이용하여 디지털 컨텐츠 제공 서버 번호(SP_NO), 주민등록번호 및 시드키(Cap ID)의 스트림을 암호화하여 파일 암호화키(FKey1) 생성을 위한 초기 암호화키인 제2 파일 암호화키(UKey1)를 생성한다.Subsequently, the digital content providing server 102 generates a stream of the digital content providing server number SP_NO, the social security number, and the seed key Cap ID by using the generated first file encryption key DasUKey1 as shown in Equation 2. By encrypting, a second file encryption key UKey1, which is an initial encryption key for generating a file encryption key FKey1, is generated.
여기서, E는 암호화의 약자를 의미하고, 암호화를 위한 알고리즘은 투피시 알고리즘이며, 괄호안의 숫자는 바이트 숫자를 나타낸다.Here, E stands for encryption, the algorithm for encryption is a two-fiche algorithm, the number in parentheses represents the byte number.
또한, 디지털 컨텐츠 제공 서버(102)는 미리 설정된 키 값(auPKey)에 따라 디지털 컨텐츠 제공 서버(102)의 랜덤값을 암호화하여 제3 파일 암호화키(DauFKey1)를 생성한다.In addition, the digital content providing server 102 generates a third file encryption key DaufKey1 by encrypting a random value of the digital content providing server 102 according to a preset key value aupPKey.
여기서, 디지털 컨텐츠 서비스 서버의 랜덤값은 일정의 프로그램에 의해 무작위로 형성된 값으로 16바이트로 구성된다.Here, the random value of the digital content service server is a value randomly formed by a predetermined program and is composed of 16 bytes.
이어, 디지털 컨텐츠 제공 서버(102)는 수학식 3에서와 같이, 제2 파일 암호화키(UKey1), 선택된 디지털 컨텐츠 파일 ID 및 디지털 컨텐츠 제공 서버 랜덤값을 제3 파일 암호화키(DauFKey1)를 이용하여 암호화함에 따라 파일 암호화키(FKey1)를 생성한다.Subsequently, the digital content providing server 102 uses the third file encryption key DaFF1 as a second file encryption key UKey1, the selected digital content file ID, and the digital content providing server random value as shown in Equation 3 below. By encrypting, a file encryption key FKey1 is generated.
여기서, 괄호안의 숫자는 바이트 단위, 디지털 컨텐츠 제공 서버 랜덤값은 일정 프로그램에 의해 무작위로 형성된 값이며, E는 암호화의 약자를 나타낸다.Here, the number in parentheses is a byte unit, the digital content providing server random value is a value formed randomly by a certain program, E represents the abbreviation of encryption.
디지털 컨텐츠 제공 서버(102)는 다단계의 암호화를 통해 생성된 파일 암호화키(FKey1)에 의해 클라이언트(104)로부터 요청된 디지털 컨텐츠 파일을 암호화하여 클라이언트(104)에게 전송한다.The digital content providing server 102 encrypts the digital content file requested from the client 104 by the file encryption key FKey1 generated through the multi-level encryption and transmits the digital content file to the client 104.
이때, 암호화되어 클라이언트(104)에게 전송되는 디지털 컨텐츠 파일은 도 6에 도시된 바와 같은 구성의 헤더를 갖는다.At this time, the digital content file encrypted and transmitted to the client 104 has a header having the configuration as shown in FIG.
도 6을 참조하면, 디지털 컨텐츠 파일의 헤더 정보는 디지털 컨텐츠 제공 서버 번호 필드(600), 파일 설명 필드(602), 파일 타입 필드(604), 파일 ID 필드(606), 클라이언트(104) 성명 필드(608), 제1 예비 영역(flag) 필드(610), 암호화될 파일의 총 사이즈 필드(612), 헤더, 바디 및 확장 영역을 포함하는 디지털 컨텐츠 파일의 총 사이즈 필드(614), 암호화된 파일의 총 사이즈 필드(616), 에러 검출을 위한 암호화될 파일의 체크섬(checksum) 필드(618), 제2 예비 영역 필드(620), 서비스 서버 랜덤 필드(622), 파일 암호화키 확인값(KVC) 필드(624), 제3 예비 영역 필드(626) 및 파일 헤더의 에러 검출을 위한 체크섬 필드(628)로 구성된다.Referring to FIG. 6, header information of a digital content file includes a digital content providing server number field 600, a file description field 602, a file type field 604, a file ID field 606, and a client 104 name field. 608, a first flag field 610, a total size field 612 of a file to be encrypted, a total size field 614 of a digital content file including a header, body, and extended area, an encrypted file The total size field 616 of the file, the checksum field 618 of the file to be encrypted for error detection, the second spare area field 620, the service server random field 622, and the file encryption key confirmation value (KVC). Field 624, a third spare area field 626, and a checksum field 628 for error detection of the file header.
여기서, 파일 암호화키 확인값 필드(624)의 확인값(KVC)은 16 바이트의 널(Null)을 이전의 파일 암호화키에 의해 암호화하여 생성되는데, 디지털 컨텐츠 제공 서버(102)는 파일 암호화를 위해 생성된 파일 암호화키(FKey1)와 확인값(KVC)을 비교함에 따라 생성된 파일 암호화키(FKey1)의 정상 여부를 확인한다.Here, the confirmation value KVC of the file encryption key confirmation value field 624 is generated by encrypting a null of 16 bytes with a previous file encryption key, and the digital content providing server 102 is configured for file encryption. By comparing the generated file encryption key FKey1 with the confirmation value KVC, it is checked whether the generated file encryption key FKey1 is normal.
클라이언트(104)는 상술한 바와 같은 구성을 갖는 헤더가 포함된 디지털 컨텐츠 파일을 다운로딩하고, 디지털 컨텐츠 파일을 실행하기 위한 복호화를 수행한다.The client 104 downloads the digital content file including the header having the configuration as described above, and performs decoding to execute the digital content file.
즉, 클라이언트(104)는 다운로딩된 디지털 컨텐츠 파일의 복호화키 생성을위하여 시스템 정보를 추출하고, 추출된 시스템 정보를 포함하는 토큰 요청 신호를 전송한다.That is, the client 104 extracts system information to generate a decryption key of the downloaded digital content file, and transmits a token request signal including the extracted system information.
또한, 시스템 정보는 토큰을 요청한 클라이언트 시스템이 가지는 정보로서, CPU의 종류, 개수 및 하드디스크의 페이지 사이즈 등의 정보를 포함한다.In addition, the system information is information that a client system requesting a token has, including information such as the type, number of CPUs, and page size of the hard disk.
인증 서버(100)는 수학식 4에서와 같이, 클라이언트(104)로부터 전송된 서비스 제공 서버 번호, 주민등록번호 및 시스템 정보를 제1 설정키값(auLKey)에 의해 암호화하여 제1 토큰키(LKey1)를 생성한다.The authentication server 100 generates the first token key LKey1 by encrypting the service providing server number, the social security number, and the system information transmitted from the client 104 by the first setting key value aulKey, as shown in Equation 4. do.
여기서, E는 암호화의 약자이고, 암호화를 위해 사용된 알고리즘은 투피시 알고리즘이며, 괄호안의 숫자는 바이트를 나타낸다.Where E is an abbreviation for encryption, the algorithm used for encryption is a two-fiche algorithm, and the numbers in parentheses indicate bytes.
인증 서버(100)는 생성된 제1 토큰키(LKey1)를 사용하여 16바이트의 인증 서버(100) 랜덤값을 암호화하여 제2 토큰키(SLKey1)를 생성한다. 이때, 인증 서버(100)는 16바이트의 널(Null)을 이전의 제2 토큰키에 의해 암호화함에 의해 생성된 확인키 값과 생성된 제2 토큰키(SLKey1)를 비교함에 따라 정상 여부를 확인한다.The authentication server 100 generates a second token key SLKey1 by encrypting the 16 byte random value of the authentication server 100 using the generated first token key LKey1. At this time, the authentication server 100 checks whether or not it is normal by comparing the generated second token key SLKey1 with the verification key value generated by encrypting a null of 16 bytes with the previous second token key. do.
여기서, 인증 서버(100) 랜덤값은 인증 서버(100)에서 일정 프로그램에 의해 무작위로 형성된 값이다.Here, the random value of the authentication server 100 is a value randomly formed by a certain program in the authentication server 100.
인증 서버(100)는 제2 토큰키(SLKey1)를 이용하여 클라이언트(104)의시드키(Cap ID)에 의해 생성된 16바이트의 제2 파일 암호화키(UKey1)를 암호화하여 제3 토큰키(EncUKey1)를 생성한다.The authentication server 100 encrypts the 16-byte second file encryption key UKey1 generated by the seed key Cap ID of the client 104 using the second token key SLKey1 to generate a third token key ( Create EncUKey1).
여기서, 제2 파일 암호화키(UKey1)는 디지털 컨텐츠 제공 서버(102)에서의 생성 과정이 동일하므로 그에 대한 상세한 설명은 생략하기로 한다.Here, since the second file encryption key UKey1 is generated in the digital content providing server 102, the detailed description thereof will be omitted.
인증 서버(100)는 제3 토큰키(EncUKey1)에 16바이트의 인증 서버 랜덤값을 부가한 [디지털 컨텐츠 암호화 서버 랜덤(16)∥제3 토큰(16)] 형태로 구성한 토큰을 클라이언트(104)에게 전송한다.The authentication server 100 configures a token formed in the form of [Digital Content Encryption Server Random 16 ∥ Third Token 16] in which a 16-byte authentication server random value is added to the third token key EncUKey1. Send to.
이때, 토큰은 다운로딩되어 단말기의 저장 영역에 저장되는데, 토큰의 다운로딩 횟수를 제한적으로 구성할 수 있다.In this case, the token is downloaded and stored in the storage area of the terminal, and the number of downloading of the token may be limited.
클라이언트(104)는 단말기의 시스템 정보를 추출하고, 추출된 시스템 정보를 미리 설정된 키값(auLKey)에 의해 암호화하여 제1 복호화키(LKey2)를 생성한다.The client 104 extracts system information of the terminal and generates the first decryption key LKey2 by encrypting the extracted system information with a preset key value aulKey.
또한, 클라이언트(104)는 토큰 내의 랜덤값을 제1 복호화키(LKey2)에 의해 암호화하여 제2 복호화키(SLKey2)를 생성한다.In addition, the client 104 generates a second decryption key SLKey2 by encrypting the random value in the token with the first decryption key LKey2.
여기서, 클라이언트(104)에 의해 생성되는 제1 복호화키(LKey2) 및 제2 복호화키(SLKey2)는 인증 서버(100)에서 생성되는 제1 토큰키(LKey1) 및 제2 토큰키(SLKey1)와 동일하고, 생성 과정도 동일하다.Here, the first decryption key LKey2 and the second decryption key SLKey2 generated by the client 104 may be combined with the first token key LKey1 and the second token key SLKey1 generated by the authentication server 100. The same is true for the production process.
클라이언트(104)는 제3 토큰키(EncUKey1)를 제2 복호화키(SLKey2)에 의해 복호화하여 제3 복호화키(UKey2)를 생성한다. 이때, 제3 복호화키(UKey2)는 제2 파일 암호화키(UKey1)와 동일한 키임은 자명하다.The client 104 decrypts the third token key EncUKey1 by the second decryption key SLKey2 to generate a third decryption key UKey2. At this time, it is apparent that the third decryption key UKey2 is the same key as the second file encryption key UKey1.
또한, 클라이언트(104)는 암호화된 디지털 컨텐츠 파일 헤더로부터 추출한서비스 제공 서버 랜덤을 제3 설정키(auFKey)에 의해 암호화하여 제4 파일키(DauFKey)를 생성한다.In addition, the client 104 generates a fourth file key (DauFKey) by encrypting the service providing server random extracted from the encrypted digital content file header with the third setting key (auFKey).
이때, 제3 설정키(auFKey)는 제1 설정키(auLKey) 또는 제2 설정키(asUKey)와 동일하게 구성되거나 또는 다른 형태로 구성될 수 있다.At this time, the third setting key (auFKey) may be configured in the same manner as the first setting key (auLKey) or the second setting key (asUKey) or may be configured in a different form.
클라이언트(104)는 수학식 3에서와 같이, 암호화된 디지털 컨텐츠 파일로부터 추출된 파일 ID, 디지털 컨텐츠 제공 서버 랜덤 및 제3 복호화키(UKey2)를 제4 복호화키(DauFKey)에 의해 암호화함에 따라 파일 복호화키(FKey2)를 생성한다.As shown in Equation 3, the client 104 encrypts the file ID extracted from the encrypted digital content file, the digital content providing server random, and the third decryption key UKey2 by using the fourth decryption key DaufKey. Generate a decryption key (FKey2).
이때, 클라이언트(104)는 다운로딩된 디지털 컨텐츠 파일 헤더 내의 확인용키 값과 생성된 파일 복호화키(FKey2)를 비교함에 따라 정상 여부를 확인한다.At this time, the client 104 checks whether it is normal by comparing the verification key value in the downloaded digital content file header with the generated file decryption key FKey2.
클라이언트(104)는 생성된 파일 복호화키(FKey2)를 이용하여 암호화된 디지털 컨텐츠 파일을 복호화하고, 실행 프로그램에 의해 디지털 컨텐츠 파일을 실행하게 된다.The client 104 decrypts the encrypted digital content file using the generated file decryption key FKey2, and executes the digital content file by the execution program.
여기서, 파일 복호화키(FKey2)는 디지털 컨텐츠 제공 서버(102)에서 디지털 컨텐츠 파일을 암호화한 파일 암호화키(FKey1)와 동일함은 자명하다.Here, it is obvious that the file decryption key FKey2 is the same as the file encryption key FKey1 which encrypts the digital content file in the digital content providing server 102.
이와 같이 구성되어 동작되는 본 발명에 따른 디지털 컨텐츠 복제 방지 장치의 수행 과정을 도 7을 참조하여 설명하면 다음과 같다.A process of performing the digital content copy protection device according to the present invention configured and operated as described above will be described with reference to FIG. 7.
도 7은 본 발명에 따른 디지털 컨텐츠 복제 방지를 수행하기 위한 플로우 챠트이다.7 is a flowchart for performing digital content copy protection according to the present invention.
먼저, 디지털 컨텐츠 제공 서버(102)는 네트워크를 통해 접속된 클라이언트(104)로부터의 사용자 정보 입력 등에 따른 서비스 등록 요청 신호를 인증 서버로 전송하고, 인증 서버(100)는 사용자 정보에 따른 시드키를 생성하여 디지털 컨텐츠 제공 서버(102)로 전송한다(S700).First, the digital content providing server 102 transmits a service registration request signal according to user information input from the client 104 connected through a network to the authentication server, and the authentication server 100 sends a seed key according to the user information. It generates and transmits to the digital content providing server 102 (S700).
디지털 컨텐츠 제공 서버(102)는 시드키(Cap ID)를 다단계 암호화하여 파일 암호화키(FKey1)를 생성하고, 생성된 파일 암호화키(FKey1)에 의해 클라이언트(104)로부터 요청된 디지털 컨텐츠 파일을 암호화한다(S702).The digital content providing server 102 multiplies the seed key Cap ID to generate a file encryption key FKey1, and encrypts the digital content file requested from the client 104 by the generated file encryption key FKey1. (S702).
이어, 인증 서버(100)는 클라이언트(104) 단말기의 시스템 정보를 다단계 암호화하여 생성된 사용자 권한키(토큰)를 클라이언트(104)로 전송한다(S704).Subsequently, the authentication server 100 transmits the user authorization key (token) generated by multi-level encryption of the system information of the client 104 terminal to the client 104 (S704).
여기서, 시스템 정보는 클라이언트(104) 단말기만이 가지는 고유 정보로서, 시스템 정보에 의해 생성된 토큰은 클라이언트의 단말기마다 고유한 특징을 갖는다.Here, the system information is unique information that only the client 104 terminal has, and the token generated by the system information has unique characteristics for each terminal of the client.
클라이언트(104)는 토큰을 이용하여 암호화 및 복호화에 의해 파일 복호화키(FKey2)를 생성하고, 생성된 파일 복호화키(FKey2)에 의해 암호화된 디지털 컨텐츠 파일을 복호화한다(S706).The client 104 generates a file decryption key FKey2 by encryption and decryption using the token, and decrypts the digital content file encrypted by the generated file decryption key FKey2 (S706).
이때, 시드키, 파일 암호화키, 토큰 및 파일 복호화키 생성을 위한 암호화 및 복호화시 이용되는 알고리즘은 투피시 알고리즘이다.In this case, an algorithm used for encryption and decryption for generating a seed key, a file encryption key, a token, and a file decryption key is a two-pass algorithm.
또한, 복호화된 디지털 컨텐츠 파일은 클라이언트(104) 단말기에 설치되어 있는 해당 실행 프로그램에 의해 실행된다.In addition, the decrypted digital content file is executed by the corresponding execution program installed in the client 104 terminal.
이와 같이 구성되는 본 발명에 따른 디지털 컨텐츠 복제 방지 과정 중 파일 암호화키 생성 과정을 도 8을 참조하여 설명한다.The file encryption key generation process of the digital content copy protection process according to the present invention configured as described above will be described with reference to FIG. 8.
도 8은 디지털 컨텐츠 파일 암호화를 위한 파일 암호화키 생성을 수행하기위한 플로우 챠트이다.8 is a flowchart for performing file encryption key generation for digital content file encryption.
디지털 컨텐츠 제공 서버(102)는 인증 서버(100)로부터의 시드키를 미리 설정된 즉, 프로그래머 등에 의해 코드상에 하드 코딩된 키값을 이용하여 암호화함에 따라 제1 파일 암호화키(DasUKey1)를 생성한다(S800).The digital content providing server 102 generates a first file encryption key DasUKey1 by encrypting a seed key from the authentication server 100 using a key value pre-set, i.e., hard-coded on a code by a programmer or the like (see FIG. S800).
이어, 시드키, 클라이언트(104)의 주민등록번호 및 디지털 컨텐츠 제공 서버 번호를 제1 파일 암호화키(DasUKey1)에 의해 암호화하여 제2 파일 암호화키(UKey1)를 생성한다(S802).Subsequently, the seed key, the social security number of the client 104, and the digital content providing server number are encrypted using the first file encryption key DasUKey1 to generate a second file encryption key UKey1 (S802).
일정 프로그램에 의해 무작위로 형성된 디지털 컨텐츠 제공 서버 랜덤값을 제2 파일 암호화키(UKey1)에 의해 암호화하여 제3 파일 암호화키(DauFKey1)를 생성한다(S804).A digital file providing server random value randomly formed by a predetermined program is encrypted with the second file encryption key UKey1 to generate a third file encryption key DaufKey1 (S804).
제2 파일 암호화키(UKey1), 클라이언트(104)로부터 요청된 디지털 컨텐츠 파일의 ID 및 랜덤값을 제3 파일 암호화키(DauFKey1)에 의해 암호화하여 파일 암호화키(FKey1)를 생성한다(S806).The second file encryption key UKey1, the ID and the random value of the digital content file requested from the client 104 are encrypted using the third file encryption key DaufKey1 to generate a file encryption key FKey1 (S806).
이어, 널(Null) 함수를 이전의 파일 암호화키에 의해 암호화하여 형성된 파일 암호화키 확인용 키값(KVC)과 파일 암호화키(FKey1)를 비교하여 생성된 파일 암호화키(FKey1)의 정상 여부를 확인한다(S808).Next, the file encryption key (FKey1) generated by comparing a file encryption key (KVC) and a file encryption key (FKey1) formed by encrypting a null function with a previous file encryption key is checked to check whether it is normal. (S808).
정상 여부가 확인된 파일 암호화키(FKey1)에 의해 디지털 컨텐츠 파일을 암호화하여 클라이언트(104)로 전송한다(S810).The digital content file is encrypted by the file encryption key FKey1 which is confirmed to be normal and transmitted to the client 104 (S810).
여기서, 제1 내지 제3 파일 암호화키 및 파일 암호화키 생성을 위한 암호화시 이용되는 알고리즘은 투피시 알고리즘이다.Here, the algorithm used in encryption for generating the first to third file encryption keys and the file encryption key is a two-pass algorithm.
또한, 도 7에서 사용자 권한 정보 즉, 토큰 생성을 위한 과정을 첨부 도면을 참조하여 보다 상세히 설명한다.In addition, a process for generating user authority information, that is, a token in FIG. 7 will be described in more detail with reference to the accompanying drawings.
도 9는 인증 서버에 의한 사용자 권한 정보 생성을 수행하기 위한 플로우 챠트이다.9 is a flowchart for generating user authority information by the authentication server.
먼저, 인증 서버(100)는 클라이언트(104)로부터의 시스템 정보를 미리 설정된 키값(auLKey)에 의해 암호화하여 제1 토큰키(LKey1)를 생성하고(S900), 생성된 제1 토큰키(LKey1)에 의해 인증 서버(100)의 랜덤값을 암호화하여 제2 토큰키(SLKey1)를 생성한다(S902).First, the authentication server 100 encrypts the system information from the client 104 with a preset key value aulKey to generate a first token key LKey1 (S900), and generates the first token key LKey1. By encrypting the random value of the authentication server 100 to generate a second token key (SLKey1) (S902).
이어, 시드키(Cap ID)를 이용하여 생성된 제2 파일 암호화키(UKey1)를 제2 토큰키(SLKey1)에 의해 암호화하여 제3 토큰키(EncUKey1)를 생성한다(S904).Subsequently, the second file encryption key UKey1 generated using the seed key Cap ID is encrypted using the second token key SLKey1 to generate a third token key EncUKey1 (S904).
여기서, 제2 파일 암호화키(UKey1)는 도 8에서와 동일한 과정에 의해 생성되므로 상세한 설명을 생략하기로 한다.Here, since the second file encryption key UKey1 is generated by the same process as in FIG. 8, a detailed description thereof will be omitted.
인증 서버(100)는 생성된 제3 토큰키(EncUKey1)에 16바이트의 랜덤값을 부가한 형태의 토큰을 생성하여 클라이언트(104)로 전송한다(S906).The authentication server 100 generates a token having a form in which a random value of 16 bytes is added to the generated third token key EncUKey1 and transmits it to the client 104 (S906).
클라이언트에 의한 암호화된 디지털 컨텐츠 파일의 복호화 과정을 도 10을 참조하여 상세히 설명한다.The decryption process of the encrypted digital content file by the client will be described in detail with reference to FIG. 10.
도 10은 본 발명에 따른 디지털 컨텐츠 파일의 복호화를 수행하기 위한 플로우 챠트이다.10 is a flowchart for decoding a digital content file according to the present invention.
클라이언트(104)는 단말기의 시스템 정보를 추출하고, 추출된 시스템 정보를 미리 설정된 키값(auLKey)에 의해 암호화하여 제1 복호화키(LKey2)를생성한다(S1000).The client 104 extracts system information of the terminal and generates the first decryption key LKey2 by encrypting the extracted system information with a preset key value aulKey (S1000).
이어, 인증 서버(100)로부터 전송되어 단말기의 일정 저장영역에 저장되어 있는 토큰 중 랜덤값을 제1 복호화키(LKey2)에 의해 암호화하여 제2 복호화키(SLKey2)를 생성한다(S1002).Subsequently, the second decryption key SLKey2 is generated by encrypting a random value among tokens transmitted from the authentication server 100 and stored in the predetermined storage area of the terminal with the first decryption key LKey2 (S1002).
토큰 중 제3 토큰키(EncUKey1)를 제2 복호화키(SLKey2)에 의해 복호화하여 제3 복호화키(UKey2)를 생성하고(S1004), 확인용 키값(KVC)과 생성된 제3 복호화키(UKey2)를 비교함에 따라 제3 복호화키(UKey2)의 정상 여부를 판단한다(S1006).The third token key EncUKey1 among the tokens is decrypted by the second decryption key SLKey2 to generate a third decryption key UKey2 (S1004), and the verification key value KVC and the generated third decryption key UKey2. ), It is determined whether the third decryption key (UKey2) is normal (S1006).
여기서, 확인용 키값(KVC)은 모든 바이트가 '0'으로 구성된 널(Null)을 이전의 제3 복호화키(UKey2)에 의해 암호화함에 생성된 키값이다.Here, the confirmation key value KVC is a key value generated by encrypting a null composed of all bytes '0' by the previous third decryption key UKey2.
위의 단계(S1004)에서 생성된 제3 복호화키(UKey2)에 의해 토큰 중 랜덤값을 암호화하여 제4 복호화키(DauFKey2)를 생성한다(S1008).The fourth decryption key DaufKey2 is generated by encrypting a random value of the tokens by the third decryption key UKey2 generated in the above step S1004 (S1008).
이어, 제3 복호화키(UKey2), 파일 ID 및 랜덤값을 제4 복호화키(DauFKey2)에 의해 암호화하여 파일 복호화키(FKey2)를 생성하고(S1010), 저장되어 있는 디지털 컨텐츠 파일 헤더의 확인용 키값(KVC)과 비교하여 파일 복호화키(FKey2)의 정상 여부를 확인한다(S1012).Subsequently, the third decryption key UKey2, the file ID, and the random value are encrypted by the fourth decryption key DaFKey2 to generate the file decryption key FKey2 (S1010), and for checking the stored digital content file header. It is checked whether the file decryption key FKey2 is normal by comparing with the key value KVC (S1012).
정상 여부가 확인된 파일 복호화키(FKey2)에 의해 암호화된 디지털 컨텐츠 파일을 복호화하고, 단말기에 설치된 해당 실행 프로그램에 의해 디지털 컨텐츠 파일을 실행한다(S1014).The digital content file encrypted by the file decryption key FKey2 having been confirmed as normal is decrypted, and the digital content file is executed by the corresponding execution program installed in the terminal (S1014).
여기서, 제3 복호화키(UKey2)는 제2 파일 암호화키(FKey1)와 동일하고, 파일복호화키(FKey2)와 파일 암호화키(FKey1)는 동일함을 자명하다.Here, it is apparent that the third decryption key UKey2 is the same as the second file encryption key FKey1, and the file decryption key FKey2 and the file encryption key FKey1 are the same.
본 발명에 따른 디지털 컨텐츠 복제 방지 장치 및 방법은 디지털 컨텐츠를 암호화하기 위한 파일 암호화키, 디지털 컨텐츠 파일을 다운로드받거나 또는 다운로드된 디지털 컨텐츠 파일을 복호화하기 위한 사용자 권한 정보 및 파일 복호화키를 다단계의 암호화 과정을 통해 생성한다.The apparatus and method for copy protection of digital content according to the present invention comprises a multi-step encryption process for a file encryption key for encrypting digital content, user authority information for downloading a digital content file, or decrypting the downloaded digital content file. Create via
그러므로, 본 발명은 파일 암호화키, 사용자 권한 정보 및 파일 복호화키가 다단계의 암호화 과정을 통해 생성되므로 키의 해독이 거의 불가능하여 디지털 컨텐츠 파일의 복제를 방지할 수 있다.Therefore, in the present invention, since the file encryption key, the user authority information, and the file decryption key are generated through a multi-step encryption process, the decryption of the key is almost impossible, thereby preventing the copying of the digital content file.
또한, 사용자 권한 정보가 단말기의 시스템 정보를 포함하는 키값에 의해 생성되므로, 클라이언트의 단말기에 다운로드된 디지털 컨텐츠 파일을 다른 단말기로의 복제를 방지할 수 있는 효과도 있다.In addition, since the user authority information is generated by a key value including system information of the terminal, the digital content file downloaded to the terminal of the client can be prevented from being copied to another terminal.
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020010004215AKR100741144B1 (en) | 2001-01-30 | 2001-01-30 | Digital content copy protection device and method |
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020010004215AKR100741144B1 (en) | 2001-01-30 | 2001-01-30 | Digital content copy protection device and method |
| Publication Number | Publication Date |
|---|---|
| KR20020063659Atrue KR20020063659A (en) | 2002-08-05 |
| KR100741144B1 KR100741144B1 (en) | 2007-07-20 |
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020010004215AExpired - LifetimeKR100741144B1 (en) | 2001-01-30 | 2001-01-30 | Digital content copy protection device and method |
| Country | Link |
|---|---|
| KR (1) | KR100741144B1 (en) |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20040017445A (en)* | 2002-08-21 | 2004-02-27 | 엘지전자 주식회사 | Method for checking for multimedia data |
| KR20040069019A (en)* | 2003-01-28 | 2004-08-04 | 박동현 | System and method for certifying use of contents |
| KR100650648B1 (en)* | 2004-12-24 | 2006-11-29 | 엘지전자 주식회사 | Apparatus and method for playing externally provided multimedia contents in mobile communication system |
| KR100768501B1 (en)* | 2005-04-08 | 2007-10-18 | (주)인테고소프트 | Digital contents electronic commerce system and method for protecting digital copyrights and recording media recording program for executing them |
| US7644265B2 (en) | 2003-06-10 | 2010-01-05 | Hitachi, Ltd. | Content transmitting device, content receiving device and content transmitting method |
| US7836507B2 (en) | 2004-03-19 | 2010-11-16 | Hitachi, Ltd. | Contents transmitter apparatus, contents receiver apparatus and contents transmitting method |
| KR100995439B1 (en)* | 2002-09-28 | 2010-11-18 | 주식회사 케이티 | Streaming data protection device and method and streaming security system using same |
| US8010792B2 (en) | 2004-01-16 | 2011-08-30 | Hitachi, Ltd. | Content transmission apparatus, content reception apparatus and content transmission method |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101990979B1 (en) | 2012-10-18 | 2019-06-20 | 에스케이플래닛 주식회사 | System and Method for discrimination of falsification/reproduction application |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20020061335A (en)* | 2001-01-16 | 2002-07-24 | 주식회사 이키온 | Security system for preventing from coping digital contents without permission and security method thereof |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20040017445A (en)* | 2002-08-21 | 2004-02-27 | 엘지전자 주식회사 | Method for checking for multimedia data |
| KR100995439B1 (en)* | 2002-09-28 | 2010-11-18 | 주식회사 케이티 | Streaming data protection device and method and streaming security system using same |
| KR20040069019A (en)* | 2003-01-28 | 2004-08-04 | 박동현 | System and method for certifying use of contents |
| US7644265B2 (en) | 2003-06-10 | 2010-01-05 | Hitachi, Ltd. | Content transmitting device, content receiving device and content transmitting method |
| US8225084B2 (en) | 2003-06-10 | 2012-07-17 | Hitachi, Ltd. | Content transmitting device, content receiving device and content transmitting method |
| US8010792B2 (en) | 2004-01-16 | 2011-08-30 | Hitachi, Ltd. | Content transmission apparatus, content reception apparatus and content transmission method |
| US8468350B2 (en) | 2004-01-16 | 2013-06-18 | Hitachi, Ltd. | Content transmission apparatus, content reception apparatus and content transmission method |
| US7836507B2 (en) | 2004-03-19 | 2010-11-16 | Hitachi, Ltd. | Contents transmitter apparatus, contents receiver apparatus and contents transmitting method |
| US8209534B2 (en) | 2004-03-19 | 2012-06-26 | Hitachi, Ltd. | Contents transmitter apparatus, contents receiver apparatus and contents transmitting method |
| KR100650648B1 (en)* | 2004-12-24 | 2006-11-29 | 엘지전자 주식회사 | Apparatus and method for playing externally provided multimedia contents in mobile communication system |
| KR100768501B1 (en)* | 2005-04-08 | 2007-10-18 | (주)인테고소프트 | Digital contents electronic commerce system and method for protecting digital copyrights and recording media recording program for executing them |
| Publication number | Publication date |
|---|---|
| KR100741144B1 (en) | 2007-07-20 |
| Publication | Publication Date | Title |
|---|---|---|
| US7376624B2 (en) | Secure communication and real-time watermarking using mutating identifiers | |
| US7975312B2 (en) | Token passing technique for media playback devices | |
| JP4366037B2 (en) | System and method for controlling and exercising access rights to encrypted media | |
| KR100362219B1 (en) | Method and system for distributing programs using tamper resistant processor | |
| KR100912276B1 (en) | Electronic Software Distribution Method and System Using a Digital Rights Management Method Based on Hardware Identification | |
| CN100576196C (en) | Content encryption method, system and method for providing content over network using the encryption method | |
| CN106888080B (en) | Protecting white-box feistel network implementations from false attacks | |
| US7260215B2 (en) | Method for encryption in an un-trusted environment | |
| EP1944905B1 (en) | An encrypted transmission method and equipment system for preventing copying the data resource | |
| US20040143738A1 (en) | System for providing session-based network privacy, private, persistent storage, and discretionary access control for sharing private data | |
| US8856942B2 (en) | Privacy-aware content protection system | |
| JP2013059078A (en) | Multimedia data protection | |
| KR20070046982A (en) | Digital rights management system based on hardware identification | |
| WO2003054661A2 (en) | Method and system for enabling content security in a distributed system | |
| JP2005526320A (en) | Secure content sharing in digital rights management | |
| WO2015024426A1 (en) | Identity authentication system, apparatus, and method, and identity authentication request apparatus | |
| JP2007511810A (en) | Proof of execution using random number functions | |
| US20020144118A1 (en) | Authentication method in an agent system | |
| CN106209346B (en) | White-box cryptography interleaving lookup table | |
| KR100741144B1 (en) | Digital content copy protection device and method | |
| CN105978680B (en) | Encryption operation method for encryption key | |
| CN116488855B (en) | Lightweight property rights confirmation system and method based on chain storage structure encryption technology | |
| JP2002204228A (en) | Device and method for distributing contents, and program and device for downloading contents | |
| KR100467570B1 (en) | Security service method for digital content and system therefor | |
| Mishra | An accountable privacy architecture for digital rights management system |
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application | St.27 status event code:A-0-1-A10-A12-nap-PA0109 | |
| R18-X000 | Changes to party contact information recorded | St.27 status event code:A-3-3-R10-R18-oth-X000 | |
| R17-X000 | Change to representative recorded | St.27 status event code:A-3-3-R10-R17-oth-X000 | |
| PG1501 | Laying open of application | St.27 status event code:A-1-1-Q10-Q12-nap-PG1501 | |
| R17-X000 | Change to representative recorded | St.27 status event code:A-3-3-R10-R17-oth-X000 | |
| A201 | Request for examination | ||
| PA0201 | Request for examination | St.27 status event code:A-1-2-D10-D11-exm-PA0201 | |
| R18-X000 | Changes to party contact information recorded | St.27 status event code:A-3-3-R10-R18-oth-X000 | |
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration | St.27 status event code:A-1-2-D10-D22-exm-PE0701 | |
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment | St.27 status event code:A-2-4-F10-F11-exm-PR0701 | |
| PR1002 | Payment of registration fee | St.27 status event code:A-2-2-U10-U11-oth-PR1002 Fee payment year number:1 | |
| PG1601 | Publication of registration | St.27 status event code:A-4-4-Q10-Q13-nap-PG1601 | |
| R18-X000 | Changes to party contact information recorded | St.27 status event code:A-5-5-R10-R18-oth-X000 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:4 | |
| R18-X000 | Changes to party contact information recorded | St.27 status event code:A-5-5-R10-R18-oth-X000 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:5 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:6 | |
| FPAY | Annual fee payment | Payment date:20130627 Year of fee payment:7 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:7 | |
| FPAY | Annual fee payment | Payment date:20140710 Year of fee payment:8 | |
| PN2301 | Change of applicant | St.27 status event code:A-5-5-R10-R13-asn-PN2301 St.27 status event code:A-5-5-R10-R11-asn-PN2301 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:8 | |
| PC1903 | Unpaid annual fee | St.27 status event code:A-4-4-U10-U13-oth-PC1903 Not in force date:20150713 Payment event data comment text:Termination Category : DEFAULT_OF_REGISTRATION_FEE | |
| FPAY | Annual fee payment | Payment date:20160225 Year of fee payment:9 | |
| K11-X000 | Ip right revival requested | St.27 status event code:A-6-4-K10-K11-oth-X000 | |
| PC1903 | Unpaid annual fee | St.27 status event code:N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text:Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date:20150713 | |
| PR0401 | Registration of restoration | St.27 status event code:A-6-4-K10-K13-oth-PR0401 | |
| R401 | Registration of restoration | ||
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:9 | |
| FPAY | Annual fee payment | Payment date:20160810 Year of fee payment:10 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:10 | |
| FPAY | Annual fee payment | Payment date:20170810 Year of fee payment:11 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:11 | |
| FPAY | Annual fee payment | Payment date:20181010 Year of fee payment:12 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:12 | |
| P22-X000 | Classification modified | St.27 status event code:A-4-4-P10-P22-nap-X000 | |
| R18-X000 | Changes to party contact information recorded | St.27 status event code:A-5-5-R10-R18-oth-X000 | |
| FPAY | Annual fee payment | Payment date:20190627 Year of fee payment:13 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:13 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:14 | |
| PC1801 | Expiration of term | St.27 status event code:N-4-6-H10-H14-oth-PC1801 Not in force date:20210131 Ip right cessation event data comment text:Termination Category : EXPIRATION_OF_DURATION |