KR20160042839A - Data communication apparatus using cloud service and method for data processing thereof - Google Patents

Data communication apparatus using cloud service and method for data processing thereof Download PDF

Info

Publication number
KR20160042839A
KR20160042839A KR1020160039576A KR20160039576A KR20160042839A KR 20160042839 A KR20160042839 A KR 20160042839A KR 1020160039576 A KR1020160039576 A KR 1020160039576A KR 20160039576 A KR20160039576 A KR 20160039576A KR 20160042839 A KR20160042839 A KR 20160042839A
Authority
KR
South Korea
Prior art keywords
data
pieces
cloud servers
cloud
data communication
Prior art date
Application number
KR1020160039576A
Other languages
Korean (ko)
Other versions
KR101704538B1 (en
Inventor
김수현
송규원
Original Assignee
한국과학기술연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술연구원 filed Critical 한국과학기술연구원
Priority to KR1020160039576A priority Critical patent/KR101704538B1/en
Publication of KR20160042839A publication Critical patent/KR20160042839A/en
Application granted granted Critical
Publication of KR101704538B1 publication Critical patent/KR101704538B1/en

Links

Images

Classifications

    • G06F17/30575
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F17/30194
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Abstract

The present invention relates to a data communication apparatus using cloud service and a data processing method thereof. The data processing method comprises: a step of coding original data in a distributed manner to generate a plurality of pieces; and a step of transmitting at least some of the pieces among the generated pieces to a plurality of cloud servers in a distributed manner. The cloud servers include at least two cloud servers, separately operated by different cloud service providers from one another. The purpose of the present invention is to provide a data communication apparatus to save data in a cloud server with improved security.

Description

클라우드 서비스를 이용하는 데이터 통신 장치 및 그것의 데이터 처리 방법{DATA COMMUNICATION APPARATUS USING CLOUD SERVICE AND METHOD FOR DATA PROCESSING THEREOF}TECHNICAL FIELD [0001] The present invention relates to a data communication apparatus using a cloud service, and a data processing method thereof. [0002]

본 발명은 데이터 통신 장치 및 그것의 데이터 처리 방법에 관한 것으로서, 더욱 상세하게는 클라우드 서버와 데이터를 주고 받는 데이터 통신 장치 및 그것의 데이터 처리 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data communication apparatus and a data processing method thereof, and more particularly, to a data communication apparatus for exchanging data with a cloud server and a data processing method thereof.

클라우드 서비스는 가상화 컴퓨팅, 유틸리티 컴퓨팅, 온디맨드(on demand) 컴퓨팅 등과 같은 다양한 컴퓨팅 방식과 통신 서비스를 혼합된 것으로서, 일반적으로는 가상화된 컴퓨터 시스템을 구축하여 사용자에게 다양한 소프트웨어, 보안 솔루션 또는 컴퓨팅 리소스를 제공하는 서비스를 의미한다. Cloud services are a mix of computing and communication services, such as virtualization, utility, and on demand computing. Typically, virtualized computer systems are used to provide users with a variety of software, security solutions, or computing resources. Means the service provided.

특히, 클라우드 서비스는 사용자에게 폭넓은 데이터 저장 서비스를 제공할 수 있으며, 이를 통해 사용자는 개인용 컴퓨터 장치에 개별적으로 저장하던 프로그램이나 문서를 인터넷 기반의 클라우드 서버에 저장할 수 있다. 그리고, 사용자는 개인용 컴퓨터나 스마트폰과 같은 다양한 단말기를 통해 클라우드 서버에 저장된 프로그램이나 문서를 구동 또는 열람할 수 있다. 이러한, 클라우드 서비스는 사용자가 장소에 영향받지 않고 저장한 데이터에 자유롭게 접근할 수 있게 하고, 사용자가 개인적으로 구비할 수 있는 것보다 더욱 풍부한 컴퓨팅 리소스를 활용할 수 있게 하는 장점이 있다. In particular, the cloud service can provide a wide range of data storage services to the user, allowing the user to store programs or documents individually stored in the personal computer device in an Internet-based cloud server. And, the user can drive or browse a program or a document stored in the cloud server through various terminals such as a personal computer or a smart phone. This cloud service has the advantage of allowing the user to freely access the stored data without being affected by the place, and to utilize a richer computing resource than the user can personally provide.

한편, 클라우드를 이용한 데이터 저장 서비스가 널리 이용됨에 따라, 개인 정보나 사생활 자료, 기업의 영업 비밀과 같은 비밀 자료들을 클라우드 서버에 저장하는 경우가 늘어나고 있다. 따라서, 클라우드 서비스를 안전하게 이용하기 위해서는, 클라우드 서버에 저장되는 자료들을 제 3 자로부터 보호하기 위한 보안 수단이 요구된다. On the other hand, as the data storage service using the cloud is widely used, secret data such as personal information, private data, and business secrets of the enterprise are increasingly stored in the cloud server. Therefore, in order to use the cloud service safely, a security measure for protecting the data stored in the cloud server from a third party is required.

또한, 클라우드 서비스를 이용할 때, 클라우드 서버가 통신 장애, 고장 또는 기타 장애 사유로 불능이 되면 사용자는 클라우드 서버에 저장한 데이터를 이용할 수 없으며, 클라우드 서버의 장애 종류에 따라 저장된 데이터를 유실할 가능성도 있다. 따라서, 클라우드 서비스를 안정하게 이용하기 위해서는, 그러한 클라우드 서버의 장애에도 불구하고 저장한 원본 데이터를 성공적으로 복원할 수 있는 수단이 요구된다. In addition, when the cloud service is used, the cloud server can not use the data stored in the cloud server if the cloud server is disabled due to communication failure, malfunction, or other reasons for failure, and the possibility that the stored data may be lost have. Therefore, in order to utilize the cloud service stably, a means for successfully restoring the stored original data despite the failure of such a cloud server is required.

본 발명의 목적은 보안성이 강화된 방법으로 클라우드 서버에 데이터를 저장하거나 클라우드 서버로부터 데이터를 읽어내는 데이터 통신 장치 및 그것의 데이터 처리 방법을 제공하는 데 있다. An object of the present invention is to provide a data communication apparatus and a data processing method thereof for storing data in a cloud server or reading data from a cloud server in a security-enhanced manner.

본 발명의 다른 목적은 데이터가 저장된 클라우드 서버가 불능이 되어도, 원래의 원본 데이터를 성공적으로 복원하게 하는 데이터 통신 장치 및 그것의 데이터 처리 방법을 제공하는 데 있다. Another object of the present invention is to provide a data communication apparatus and a data processing method for the same that can restore original source data successfully even if a cloud server storing data is disabled.

본 발명의 또 다른 목적은 클라우드 서비스의 데이터 전송 속도 및 공간 효율성이 향상된 데이터 통신 장치 및 그것의 데이터 처리 방법을 제공하는 데 있다. It is another object of the present invention to provide a data communication apparatus and a data processing method of the same that have improved data transmission speed and space efficiency of a cloud service.

본 발명의 실시 예들에 따른, 데이터 통신 장치의 데이터 처리 방법은 원본 데이터를 분산 코딩하여 복수의 조각들을 생성하는 단계; 상기 생성된 복수의 조각들 중 적어도 일부의 조각들을 복수의 클라우드 서버들에 분산 전송하는 단계를 포함하되, 상기 복수의 클라우드 서버들은 각각이 상이한 클라우드 서비스 제공자들에 의해 운영되는 적어도 두 개의 클라우드 서버를 포함한다. According to embodiments of the present invention, a data processing method of a data communication apparatus includes the steps of: generating a plurality of pieces by dispersively coding original data; Distributing at least some pieces of the generated plurality of pieces to a plurality of cloud servers, wherein the plurality of cloud servers each include at least two cloud servers operated by different cloud service providers .

실시 예로서, 상기 복수의 조각들은 하나 이상의 데이터 조각들 및 하나 이상의 패리티 조각들을 포함한다. In an embodiment, the plurality of pieces comprise one or more pieces of data and one or more pieces of parity.

실시 예로서, 상기 원본 데이터는 상기 복수의 조각들 중 상기 적어도 일부의 조각들로부터 복원 가능하고, 상기 적어도 일부의 조각들의 개수는 상기 하나 이상의 데이터 조각들의 개수보다 크거나 같다.In an embodiment, the original data is recoverable from the at least a portion of the plurality of pieces, and the number of the at least some pieces is equal to or greater than the number of the one or more data pieces.

실시 예로서, 상기 적어도 일부의 조각들은 상기 하나 이상의 패리티 조각들 중 적어도 하나를 포함한다. In an embodiment, the at least some fragments comprise at least one of the one or more parity fragments.

실시 예로서, 상기 적어도 일부의 조각들은 상기 하나 이상의 데이터 조각들을 포함하지 않는다.In an embodiment, the at least some fragments do not include the one or more data fragments.

실시 예로서, 복수의 조각들을 생성하는 단계는 상기 원본 데이터를 암호화하는 단계; 및 상기 암호화된 상기 원본 데이터를 분산 코딩하여 상기 복수의 조각들을 생성하는 단계를 포함한다.As an embodiment, generating a plurality of fragments may include encrypting the source data; And generating the plurality of fragments by variably coding the encrypted original data.

실시 예로서, 상기 원본 데이터의 상기 암호화에 사용된 키는 분산 코딩되어 상기 복수의 클라우드 서버들에 분산 저장된다.In an embodiment, the keys used for encryption of the original data are distributed coded and distributed to the plurality of cloud servers.

실시 예로서, 상기 생성된 복수의 조각들의 개수 또는 상기 생성된 복수의 조각들 각각의 크기는 상기 복수의 클라우드 서버들의 개수 또는 상기 복수의 클라우드 서버들의 저장 가능한 공간을 참조하여 결정된다.In an embodiment, the number of the generated plurality of pieces or the size of each of the generated plurality of pieces is determined by referring to the number of the plurality of cloud servers or the storable space of the plurality of the cloud servers.

실시 예로서, 상기 복수의 클라우드 서버들에 분산 전송하는 단계는, 미리 결정된 레이드 레벨에 따라, 상기 적어도 일부의 조각들을 상기 복수의 클라우드 서버들 중 적어도 일부에 순차적으로 또는 병렬적으로 전송하는 단계를 포함한다.In an embodiment, the step of distributedly transmitting to the plurality of cloud servers comprises transmitting the at least some fragments to at least a part of the plurality of cloud servers sequentially or in parallel according to a predetermined level of the raid .

본 발명의 실시 예들에 따른, 데이터 통신 장치의 데이터 처리 방법은 복수의 클라우드 서버들로부터 복수의 조각들을 읽어내는 단계; 및 상기 읽어낸 복수의 조각들을 복호하여 원본 데이터를 복원하는 단계를 포함하되, 상기 복수의 클라우드 서버들은 각각이 상이한 클라우드 서비스 제공자들에 의해 운영되는 적어도 두 개의 클라우드 서버를 포함한다.According to embodiments of the present invention, a data processing method of a data communication apparatus includes: reading a plurality of pieces from a plurality of cloud servers; And decoding the read pieces to restore original data, wherein the plurality of cloud servers each include at least two cloud servers operated by different cloud service providers.

실시 예로서, 상기 원본 데이터를 복원하는 단계는, 상기 읽어낸 복수의 조각들을 복호하여 암호화된 데이터를 복원하는 단계; 및 상기 암호화된 데이터를 복호하여 상기 원본 데이터를 복원하는 단계를 포함한다.In one embodiment of the present invention, the step of restoring the original data comprises: decrypting the read pieces to restore encrypted data; And decoding the encrypted data to restore the original data.

실시 예로서, 상기 읽어낸 복수의 조각들의 복호는 상기 복수의 조각들을 생성하는 데 사용된 분산 코딩 방법의 복호 알고리즘을 통해 수행된다.As an embodiment, the decoding of the read plurality of fragments is performed through a decoding algorithm of the distributed coding method used to generate the plurality of fragments.

실시 예로서, 상기 암호화된 데이터의 복호는 상기 원본 데이터를 암호화하는 데 사용된 암호화 방법의 복호 알고리즘을 통해 수행된다.As an embodiment, the decryption of the encrypted data is performed through a decryption algorithm of the encryption method used to encrypt the original data.

본 발명의 실시 예들에 따른, 클라우드 저장 서비스를 제공하는 클라우드 서버는 원본 데이터를 분산 코딩하여 생성된 복수의 조각들 중 일부 조각을 데이터 통신 장치로부터 수신하여 저장하고, 상기 저장한 일부 조각을 외부 장치로부터의 요청에 응답하여 상기 외부 장치에 제공하되, 상기 복수의 조각들은 상기 일부 조각과는 상이한 다른 일부 조각을 더 포함하고, 상기 다른 일부 조각은 상기 클라우드 저장 서비스와는 상이한 다른 클라우드 저장 서비스를 제공하는 다른 클라우드 서버에 저장되고, 상기 외부 장치로부터의 요청에 응답하여, 상기 외부 장치에 제공된다.According to embodiments of the present invention, a cloud server that provides a cloud storage service receives and stores a part of a plurality of pieces generated by distributing and encoding original data from a data communication device, and stores the stored pieces into an external device Wherein the plurality of pieces further comprise a different piece of the piece that is different from the piece, and the other piece of piece comprises another cloud storage service different from the cloud storage service And is provided to the external device in response to a request from the external device.

실시 예로서, 상기 일부 조각 또는 상기 다른 일부 조각은 상기 분산 코딩에 의해 생성된 패리티 조각을 포함한다.In some embodiments, the fractional fragments or the fractional fragments comprise parity fragments generated by the distributed coding.

본 발명의 실시 예들에 따르면, 데이터 암호화, 분산 코딩 또는 복수의 클라우드 서버에 대한 분산 저장을 통해, 보안성이 강화된 방법으로 클라우드 서버에 데이터를 저장하거나 클라우드 서버로부터 데이터를 읽어낼 수 있다.According to embodiments of the present invention, data can be stored in the cloud server or read from the cloud server in a security-enhanced manner through data encryption, distributed coding, or distributed storage for a plurality of cloud servers.

또한, 데이터를 분산 코딩하여 복수의 클라우드 서버에 나누어 저장하므로, 일부 클라우드 서버가 불능이 되어도 나머지 클라우드 서버로부터 원래의 원본 데이터를 성공적으로 복원할 수 있다.In addition, since the data is distributed and stored in a plurality of cloud servers, even if some cloud servers are disabled, the original data can be successfully restored from the remaining cloud servers.

또한, 전체 데이터를 복수의 클라우드 서버에 병렬적으로 저장하므로, 데이터 업로드 속도 및 다운로드 속도가 향상되고, 클라우드 서버의 저장 공간을 효율적으로 활용할 수 있다. In addition, since the entire data is stored in parallel in a plurality of cloud servers, the data upload speed and download speed are improved, and the storage space of the cloud server can be efficiently utilized.

도 1은 본 발명의 일 실시 예에 따른, 클라우드 서비스를 이용한 데이터 처리 방법을 나타내는 블록도이다.
도 2는 본 발명의 일 실시 예에 따른, 분산 코딩을 개략적으로 나타내는 개요도이다.
도 3은 본 발명의 다른 실시 예에 따른, 클라우드 서비스를 이용한 데이터 처리 방법을 나타내는 블록도이다.
도 4는 본 발명의 또 다른 실시 예에 따른, 클라우드 서비스를 이용한 데이터 처리 방법을 나타내는 블록도이다.
도 5는 본 발명의 실시 예들에 따른, 복수의 클라우드 서버에 데이터를 업로드하는 방법 및 복수의 클라우드 서버로부터 데이터를 다운로드하는 방법을 나타내는 블록도들이다.
도 6은 클라우드 서버들의 저장 가능한 공간에 따라, 데이터를 분산 코딩하여 클라우드 서버들에 전송하는 방법을 나타내는 블록도이다.
도 7은 저장 가능한 클라우드 서버들의 저장 가능한 공간에 따라, 레이드 레벨을 달리하여 데이터를 전송하는 방법을 나타내는 블록도이다.
도 8은 본 발명의 실시 예들에 따른, 클라우드 서비스를 이용한 데이터 처리 방법을 나타내는 순서도이다.
도 9는 본 발명의 일 실시 예에 따라, 도 8의 S110 단계를 구체화한 순서도이다.
도 10은 본 발명의 일 실시 예에 따라, 도 8의 S140 단계를 구체화한 순서도이다.
1 is a block diagram illustrating a data processing method using a cloud service according to an embodiment of the present invention.
Figure 2 is a schematic diagram that schematically illustrates distributed coding, in accordance with one embodiment of the present invention.
3 is a block diagram illustrating a data processing method using a cloud service according to another embodiment of the present invention.
4 is a block diagram illustrating a data processing method using a cloud service according to another embodiment of the present invention.
5 is a block diagram illustrating a method of uploading data to a plurality of cloud servers and a method of downloading data from a plurality of cloud servers, according to embodiments of the present invention.
6 is a block diagram illustrating a method of distributing and transmitting data to cloud servers according to a storable space of cloud servers.
7 is a block diagram illustrating a method for transmitting data at different raid levels according to the storable space of storable cloud servers.
8 is a flowchart illustrating a data processing method using a cloud service according to embodiments of the present invention.
FIG. 9 is a flow chart embodying step S110 of FIG. 8 according to an embodiment of the present invention.
FIG. 10 is a flowchart illustrating the step S140 of FIG. 8 according to an embodiment of the present invention.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시 예를 예시로서 도시하는 첨부 도면을 참조한다. 본 발명의 다양한 실시 예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시 예에 관련하여 본 발명의 사상 및 범위를 벗어나지 않으면서 다른 실시 예로 구현될 수 있다. The following detailed description of the invention refers to the accompanying drawings, which illustrate, by way of illustration, specific embodiments in which the invention may be practiced. It should be understood that the various embodiments of the present invention are different, but need not be mutually exclusive. For example, certain features, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the invention in connection with one embodiment.

또한, 각각의 개시된 실시 예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 사상 및 범위를 벗어나지 않는 범위 내에서 다양하게 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 의도된 것이 아니며, 본 발명의 범위는 원칙적으로 첨부한 청구항들에 정해지고, 청구항들에 기재된 것 및 그와 균등한 범위의 가능한 실시 예들을 포괄한다. 유사한 참조부호가 도면들에서 사용되는 경우, 유사한 참조부호는 여러 실시 예들에 대해서 동일하거나 유사한 기능을 지칭한다.It should also be understood that the position or arrangement of the individual components within each disclosed embodiment can be variously modified without departing from the spirit and scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is principally defined by the appended claims, encompassed by the appended claims and their equivalents. Where similar reference numerals are used in the figures, like reference numerals refer to the same or similar functions for various embodiments.

이하에서는, 첨부한 도면들을 참조하여, 구체적인 실시 예를 통해 본 발명의 내용 및 사상을 설명한다. Hereinafter, the contents and ideas of the present invention will be described with reference to the accompanying drawings.

도 1은 본 발명의 일 실시 예에 따른, 클라우드 서비스를 이용한 데이터 처리 방법을 나타내는 블록도이다. 도 1을 참조하면, 클라우드 데이터 저장 시스템은 데이터 통신 장치(110), 네트워크(120) 및 복수의 클라우드 서버들(131, 132, 133)을 포함한다. 1 is a block diagram illustrating a data processing method using a cloud service according to an embodiment of the present invention. Referring to FIG. 1, a cloud data storage system includes a data communication device 110, a network 120, and a plurality of cloud servers 131, 132, and 133.

도 1에서, 데이터 통신 장치(110)는 원본 데이터(111)를 분산 코딩하여 복수의 조각들(112)을 생성한 후, 네트워크(120)를 통해 복수의 클라우드 서버들(131, 132, 133)에 분산 저장한다. 이때, 데이터 통신 장치(110)는 분산 코딩된 복수의 조각들(112) 전부를 저장 데이터(122)로서 클라우드 서버들(131, 132, 133)에 제공할 수도 있고, 또는 복수의 조각들(112) 중 일부만을 저장 데이터(122)로서 클라우드 서버들(131, 132, 133)에 제공할 수도 있다. 1, the data communication apparatus 110 distributes the original data 111 to generate a plurality of pieces 112, and then transmits the pieces of data 112 to the plurality of cloud servers 131, 132, and 133 via the network 120. [ . At this time, the data communication device 110 may provide all of the plurality of decoded pieces 112 to the cloud servers 131, 132, 133 as the storage data 122, May be provided to the cloud servers 131, 132, and 133 as the storage data 122.

데이터 통신 장치(110)는 네트워크(120)와 연결되어 클라우드 서버들(131, 132, 133)에 데이터를 전송하거나, 클라우드 서버들(131, 132, 133)로부터 데이터를 수신하는 장치이다. 데이터 통신 장치(110)는 개인용 컴퓨터, 공용 컴퓨터, 서버 또는 데이터 통신 수단을 구비한 홈 어플리케이션(예를 들어, 스마트 TV, 냉장고, 가정용 보안장치 등)이나 사무용 어플리케이션(예를 들어, 프린터, 스캐너, 복합기, 사무실용 보안장치 등)을 포함할 수 있다. 또는, 데이터 통신 장치(110)는 모바일 단말기, 핸드폰, 스마트폰, 랩톱 컴퓨터, 노트북 컴퓨터 또는 무선 통신 수단을 구비한 모바일 디바이스(예를 들어, GPS 단말기, 스마트워치 등)를 포함할 수 있다. The data communication apparatus 110 is connected to the network 120 and transmits data to the cloud servers 131, 132 and 133 or receives data from the cloud servers 131, 132 and 133. The data communication device 110 may be a personal computer, a public computer, a server or a home application (e.g., a smart TV, a refrigerator, a home security device, etc.) A multi-function device, an office security device, etc.). Alternatively, data communication device 110 may comprise a mobile terminal, a cellular phone, a smart phone, a laptop computer, a notebook computer, or a mobile device (e.g., GPS terminal, smart watch, etc.) with wireless communication means.

데이터 통신 장치(110)는 원본 데이터(111)를 클라우드 서버들(131, 132, 133)에 분산 저장하기 위해, 원본 데이터(111)를 분산 코딩하여 복수의 조각들(112)을 생성한다. 여기서, 분산 코딩은 원본 데이터로부터 복수의 조각들을 생성하는 코딩 방법으로서, 원본 데이터를 분할하여 n개의 조각들을 생성하면 이후 n개의 조각들 중 k개의 조각들만 획득하여도 원래의 데이터를 온전히 복원할 수 있는 특징을 갖는다(단, n≥k≥1). 이때, 원본 데이터를 몇 개(n)의 조각들로 분할할지 및 원본 데이터의 복원이 가능한 조각들의 최소 수(k)를 몇 개로 할지는 임의로 정할 수 있다. 예를 들어, 데이터 통신 장치(110)가 원본 데이터(111)에 대해 [n, k] 분산 코딩을 수행하면, 원본 데이터(111)의 데이터 내용을 담은 k개의 데이터 조각들 및 그것들에 대한 n-k개의 패리티 조각들로 구성된 전체 n개의 조각들이 생성된다. 그리고, 생성된 n개의 조각들 중 임의의 서로 다른 k개의 조각들을 획득하면, 데이터 통신 장치(110)는 원본 데이터(111)를 성공적으로 복원할 수 있다.The data communication apparatus 110 generates a plurality of pieces 112 by distributing the original data 111 in a distributed manner to distribute the original data 111 to the cloud servers 131, Here, the distributed coding is a coding method for generating a plurality of fragments from original data. If the original data is divided to generate n pieces, then only the k pieces of the n pieces are acquired, (Where n? K? 1). At this time, it is possible to arbitrarily decide how many pieces (n) of original data are to be divided and how many pieces (k) of pieces of original data can be restored. For example, when the data communication apparatus 110 performs [n, k] distributed coding on the original data 111, k data pieces containing the data contents of the original data 111 and nk All n pieces of parity pieces are generated. And acquiring any of the different k pieces of the generated n pieces, the data communication device 110 can successfully recover the original data 111. [

본 발명에서 사용되는 분산 코딩은 예를 들어, 삭제 코딩(erasure coding)일 수 있다. 삭제 코딩의 대표적인 예로서는 리드-솔로몬 코딩(reed-solomon coding)이 있으며, 삭제 코딩 및 리드-솔로몬 코딩에 관한 구체적인 내용은 당해 기술 분야에 널리 알려져 있으므로, 여기서는 그에 대한 설명을 생략한다.The distributed coding used in the present invention may be, for example, erasure coding. A typical example of erasure coding is reed-solomon coding, and detailed contents of erasure coding and Reed-Solomon coding are well known in the art, and a description thereof will be omitted here.

그리고, 데이터 통신 장치(110)는 생성된 복수의 조각들(112) 중 적어도 일부(122)를 복수의 클라우드 서버들(131, 132, 133)에 분산 저장한다. 실시 예로서, 분산 저장되는 적어도 일부의 조각들(122)은 원본 데이터(111)의 복원이 가능한 최소 수(예를 들어, k개) 이상의 조각들을 포함한다. 이때, 적어도 일부의 조각들(122)은 각각이 서로 다른 클라우드 서버에 저장될 수도 있고, 그렇지 않으면 그 중 둘 이상의 조각들이 동일한 클라우드 서버에 저장될 수도 있다. 한편, 여기서 클라우드 서버들(131, 132, 133)은 세 개가 도시되었지만, 이는 예시적인 것으로서 본 발명은 이에 한정되지 않는다. 예를 들어, 데이터 통신 장치(110)는 복수의 조각들(112) 중 적어도 일부의 조각들(122)을 네 개 이상의 클라우드 서버들에 분산 저장할 수 있다. The data communication apparatus 110 distributes and stores at least a part 122 of the plurality of generated pieces 112 to the plurality of cloud servers 131, 132 and 133. As an embodiment, at least some of the pieces 122 that are distributed stored include a minimum number (e.g., k) of pieces that can be recovered from the original data 111. [ At this time, at least some of the pieces 122 may be stored in different cloud servers, respectively, or two or more of them may be stored in the same cloud server. Meanwhile, although three cloud servers 131, 132, and 133 are shown here, this is an example, and the present invention is not limited thereto. For example, the data communication device 110 may distribute at least some of the pieces 122 of the plurality of pieces 112 to four or more cloud servers.

네트워크(120)는 데이터 통신 장치(110)와 클라우드 서버들(131, 132, 133)을 중계하는 통신망이다. 네트워크(120)는 유선 네트워크 또는 무선 네트워크를 포함하는 다양한 형태의 네트워크, 예를 들어 WiBro, UMTS(3G), E-UMTS(4G) 또는 Femtocell과 같은 이동통신 네트워크, WiFi 또는 Bluetooth와 같은 무선 네트워크, LAN, 전화망 또는 유선 케이블과 같은 유선 네트워크를 포함할 수 있으나, 이에 한정되는 것은 아니다.The network 120 is a communication network for relaying the data communication apparatus 110 and the cloud servers 131, 132, and 133. The network 120 may be any of various types of networks, including wired networks or wireless networks, for example mobile communication networks such as WiBro, UMTS (3G), E-UMTS (4G) or Femtocell, wireless networks such as WiFi or Bluetooth, But is not limited to, a wired network such as a LAN, a telephone network, or a wired cable.

복수의 클라우드 서버들(131, 132, 133)은 클라이언트(예를 들어, 데이터 통신 장치(110))에게 클라우드 저장 서비스를 제공하는 컴퓨팅 장치들로서, 서로 다른 클라우드 저장 서비스 제공자들에 의해 운영되며, 서로 독립적으로 동작하도록 구성된다. 예를 들어, 복수의 클라우드 서버들(131, 132, 133)은 동일한 데이터 통신 장치(110)에 대해 별도의 사용자 인증 절차(예를 들어, 로그인)를 각각 요구할 수 있다. 클라우드 서버들(131, 132, 133) 각각은 네트워크(120)를 통해 데이터 통신 장치(110)와 통신적으로(communicatively) 연결되며, 자체적으로 구비한 처리 수단들을 이용하여 자신과 연결된 데이터 통신 장치(110)에 일반적인 또는 개별화된(customized) 데이터 저장 서비스를 제공한다. 클라우드 서버들(131, 132, 133) 각각은 데이터 통신 장치(110)의 접속을 개별적으로 또는 통합적으로 제어하는 로그-온(log-on) 수단을 구비할 수 있다. A plurality of cloud servers 131, 132, and 133 are computing devices that provide cloud storage services to a client (e.g., data communication device 110), which are operated by different cloud storage service providers, And is configured to operate independently. For example, a plurality of cloud servers 131, 132, and 133 may each require a separate user authentication procedure (e.g., login) for the same data communication device 110. Each of the cloud servers 131, 132 and 133 is communicatively coupled to the data communication device 110 via the network 120 and communicates with the data communication device < RTI ID = 0.0 > 110 to provide a common or customized data storage service. Each of the cloud servers 131, 132, and 133 may have log-on means for individually or integrally controlling the connection of the data communication device 110. [

본 발명에서, 클라우드 서버들(131, 132, 133) 각각은 통상 서로 다른 클라우드 저장 서비스 제공자들(예를 들어, Dropbox, SkyDrive, Google Drive 등)에 의해 운영되는 것으로 예시되지만, 본 발명의 범위가 이에 한정되는 것은 아니다. 예를 들어, 클라우드 서버들(131, 132, 133) 중 어느 두 개는 동일한 클라우드 사업자에 의해 운영되는 서버일 수 있다. 클라우드 서버들(131, 132, 133) 각각의 구체적인 구성 및 일반적인 서비스 제공 방법은 당해 기술 분야에 널리 알려져 있으므로, 여기서는 그에 대한 설명을 생략한다.In the present invention, each of the cloud servers 131, 132, and 133 is typically illustrated as being operated by different cloud storage service providers (e.g., Dropbox, SkyDrive, Google Drive, etc.) But is not limited thereto. For example, any two of the cloud servers 131, 132, and 133 may be servers operated by the same cloud provider. The specific configuration of each of the cloud servers 131, 132, and 133 and the general service providing method are well known in the art, and a description thereof will be omitted here.

상기와 같은 구성에 따르면, 원본 데이터의 분산 코딩된 조각들을 복수의 클라우드 서버에 분산 저장하므로, 그 중 일부(단, 복원 가능한 최소 수(k) 미만)의 클라우드 서버가 해킹된다 하더라도 원본 데이터는 외부로 유출되지 않는다. 따라서, 클라우드 저장 서비스의 안전성이 향상된다.According to the above configuration, since the distributed coded pieces of original data are distributed and stored in a plurality of cloud servers, even if a part of the cloud servers (less than the minimum recoverable number k) is hacked, . Therefore, the security of the cloud storage service is improved.

또한, 클라우드 서버들에 저장된 조각들 중 일부(단, 복원 가능한 최소 수(k) 이상)만 획득하여도 원본 데이터의 복원이 가능하므로, 일부 클라우드 서버가 불능이 되어도 나머지 클라우드 서버로부터 원래의 원본 데이터를 성공적으로 복원할 수 있다. 따라서, 클라우드 저장 서비스의 신뢰성 및 안정성이 향상된다.In addition, even if some of the pieces stored in the cloud servers (only the minimum number (k) that can be restored) are acquired, the original data can be restored. Therefore, even if some cloud servers are disabled, Can be restored successfully. Therefore, the reliability and stability of the cloud storage service are improved.

또한, 원본 데이터를 나누어 복수의 클라우드 서버에 병렬적으로 저장하므로, 데이터 업로드 속도 및 다운로드 속도가 향상될 수 있고, 작은 저장 용량을 제공하는 클라우드 서버들을 모아서 큰 용량의 데이터를 저장하는 등 클라우드 서버의 저장 공간을 효율적으로 활용할 수 있다. 따라서, 클라우드 저장 서비스의 효율성이 향상된다.In addition, since the original data is divided and stored in parallel in a plurality of cloud servers, data uploading speed and downloading speed can be improved, and cloud servers providing small storage capacity can be collected to store a large amount of data. The storage space can be efficiently utilized. Thus, the efficiency of the cloud storage service is improved.

도 2는 본 발명의 일 실시 예에 따른, 분산 코딩을 개략적으로 나타내는 개요도이다. 도 2를 참조하면, [5, 2] 분산 코딩 방법(10)이 도시된다. Figure 2 is a schematic diagram that schematically illustrates distributed coding, in accordance with one embodiment of the present invention. Referring to FIG. 2, a [5, 2] distributed coding method 10 is shown.

앞서 간략하게 설명한 바와 같이, [n, k] 분산 코딩 방법은 원본 데이터를 분할하여 k개의 데이터 조각들과 n-k개의 패리티 조각들을 생성하는 분산 코딩 방법이다. 이러한 분산 코딩 방법은, 생성된 조각들 중 k개의 데이터 조각들을 획득하여 복호하면 원래의 원본 데이터가 복원됨은 물론이고, 굳이 데이터 조각들에 한정하지 않더라도 전체 n개의 조각(k개의 데이터 조각 + n-k개의 패리티조각)들 중 k개의 임의의 조각을 획득하기만 하면(심지어는 k개 전부가 패리티 조각인 경우에도) 원본 데이터를 성공적으로 복원할 수 있다. 이러한 분산 코딩의 예로서 삭제 코딩이 있음은 앞서 설명한 바 있다. As described briefly above, the [n, k] distributed coding method is a distributed coding method for generating k pieces of data pieces and n-k pieces of parity pieces by dividing original data. In this distributed coding method, when k data pieces among the generated pieces are acquired and decoded, not only original data but also all n pieces (k pieces of data pieces + nk Parity fragments) (even if all k pieces are parity fragments), the original data can be successfully restored. As an example of such distributed coding, deletion coding has been described above.

도 2를 참조하여 예시하면, 원본 데이터(11)를 [5, 2] 분산 코딩 방법으로 인코딩하면 2개의 데이터 조각들(12, 13)과 3개의 패리티 조각들이 생성된다. 데이터 조각들(12, 13)에는 원본 데이터(11)의 내용이 그대로 드러나지만, 패리티 조각들(14, 15, 16)에는 원본 데이터(11)의 내용이 겉으로는 드러나지 않는다.2, when the original data 11 is encoded by the [5, 2] distributed coding method, two data pieces 12 and 13 and three parity pieces are generated. The contents of the original data 11 are not exposed to the parity pieces 14, 15 and 16 although the contents of the original data 11 are exposed in the data pieces 12 and 13 as they are.

그리고, 원본 데이터 복원 과정에서, 사용자(또는, 데이터 통신 장치)는 생성된 5개의 조각들(12, 13, 14, 15, 16) 중 적어도 두 개의 조각만을 획득하여 동일한 분산 코딩 방법의 복호 알고리즘을 통해 디코딩하면 원본 데이터를 복원할 수 있다. 이때, 사용자가 획득하여야 하는 조각들은 데이터 조각들(12, 13)일 필요가 없으며, 데이터 조각들(12, 13) 중 어느 하나와 패리티 조각들(14, 15, 16) 중 어느 하나를 각각 획득하거나 두 개의 조각들을 전부 패리티 조각들(14, 15, 16)로부터 획득하여도 무방하다.Then, in the original data restoring process, the user (or the data communication apparatus) obtains only at least two pieces of the generated five pieces 12, 13, 14, 15, 16 and decodes the decoding algorithm of the same distributed coding method Can be decoded to restore the original data. At this time, the pieces to be acquired by the user do not need to be the data pieces 12 and 13, and any one of the data pieces 12 and 13 and the parity pieces 14, 15, Or both of the two pieces may be obtained from the parity pieces 14, 15, 16.

여기서는, 사용자가 패리티 조각들(14, 15, 16) 중 두 개의 조각들(14, 15)을 획득한 것으로 가정한다. 사용자는 획득한 패리티 조각들(14, 15)을 앞서 인코딩시와 동일한 분산 코딩 방법의 복호 알고리즘을 통해 디코딩한다. 디코딩이 완료되면, 결과로서 원본 데이터(17)가 복원된다.Here, it is assumed that the user has acquired two pieces 14, 15 of the parity pieces 14, 15, 16. The user decodes the acquired parity fragments 14 and 15 through a decryption algorithm of the same distributed coding method as that in encoding. When the decoding is completed, the original data 17 is restored as a result.

한편, 원본 데이터로부터 n개의 데이터 조각들을 생성하고 그 중 k개의 임의의 조각들을 획득하여 원본 데이터를 복원하는 분산 코딩 방법 및 그것의 복호 알고리즘에 대한 구체적인 내용은 당해 기술 분야에 널리 알려져 있으므로, 여기서는 그에 대한 설명을 생략한다.On the other hand, since details of the distributed coding method and its decoding algorithm for generating n pieces of data from original data and recovering original data by acquiring k pieces of arbitrary pieces of the data pieces are well known in the art, .

도 3은 본 발명의 다른 실시 예에 따른, 클라우드 서비스를 이용한 데이터 처리 방법을 나타내는 블록도이다. 도 3을 참조하면, 클라우드 데이터 저장 시스템은 데이터 통신 장치(210), 네트워크(220) 및 복수의 클라우드 서버들(231, 232, 233)을 포함한다. 3 is a block diagram illustrating a data processing method using a cloud service according to another embodiment of the present invention. Referring to FIG. 3, a cloud data storage system includes a data communication device 210, a network 220, and a plurality of cloud servers 231, 232, and 233.

도 3에서, 데이터 통신 장치(210), 네트워크(220) 및 복수의 클라우드 서버들(231, 232, 233)의 구성 및 동작 방법은 도 1의 데이터 통신 장치(110), 네트워크(120) 및 복수의 클라우드 서버들(131, 132, 133)과 실질적으로 동일하다. 다만, 도 3에서는 데이터 통신 장치(210)가 원본 데이터(211)를 분산 코딩할 때 생성되는 데이터 조각들의 수(예를 들어, k개) 이상의 패리티 조각들을 생성하고(즉, n-k ≥ k), 패리티 조각들만을 복수의 클라우드 서버들(231, 232, 233)에 분산 저장하는 것으로 예시된다. 패리티 조각들에는 원본 데이터의 내용이 직접적으로 드러나지 않기 때문에, 이 경우 분산 저장된 패리티 조각들이 해킹되더라도 원본 데이터의 내용은 안전하게 보호될 수 있다.3, the configuration and method of operation of the data communication device 210, the network 220, and the plurality of cloud servers 231, 232, 233 are similar to those of the data communication device 110, network 120, Are substantially the same as the cloud servers 131, 132, and 133 of FIG. 3, the data communication apparatus 210 generates parity pieces (i.e., nk > k) of the number of data pieces (e.g., k) generated when the original data 211 is distributed- It is exemplified that only the parity pieces are distributedly stored in the plurality of cloud servers 231, 232, and 233. Since the contents of the original data are not exposed directly to the parity fragments, in this case, the contents of the original data can be safely protected even if the distributed parity fragments are hacked.

좀 더 구체적으로 설명하면, 데이터 통신 장치(210)는 먼저 원본 데이터(211)를 예를 들어 [6, 3] 분산 코딩하여 3개의 데이터 조각들(212)과 3개의 패리티 조각들(213)로 구성된 복수의 조각들을 생성한다. 그리고, 원본 데이터의 안전성을 강화하기 위해, 3개의 패리티 조각들(213)만을 네트워크(120)를 통해 복수의 클라우드 서버들(231, 232, 233)에 분산 저장한다. [6, 3] 분산 코딩 방법에서, 사용자는 전체 6개의 조각들(212, 213) 중 3개 이상의 조각들을 획득하기만 하면, 획득한 조각들이 데이터 조각인지 또는 패리티 조각인지를 불문하고 원본 데이터를 복원할 수 있다. 따라서, 도 3의 실시 예에 따르면, 사용자가 클라우드 서버들(231, 232, 233)에 저장된 패리티 조각들(222)을 다운로드하여 원본 데이터를 복원하는 데는 아무런 문제가 없으면서도, 동시에 원본 데이터의 내용이 드러나지 않는 패리티 조각들만을 이용하므로 해킹에 더욱 안전해지는 장점이 있다. More specifically, the data communication apparatus 210 first distributes the original data 211 by, for example, [6, 3] to three data pieces 212 and three parity pieces 213 And generates a plurality of pieces constituted. In order to enhance the security of the original data, only three pieces of parity pieces 213 are distributedly stored in the plurality of cloud servers 231, 232, and 233 through the network 120. [6, 3] In the distributed coding method, if the user acquires three or more pieces of all six pieces 212 and 213, the user can obtain the original data regardless of whether the acquired pieces are a data piece or a parity piece Can be restored. Therefore, according to the embodiment of FIG. 3, there is no problem for the user to download the parity pieces 222 stored in the cloud servers 231, 232, and 233 to restore the original data, There is an advantage that it is safer to hack because it uses only the parasitic pieces which are not exposed.

한편, 앞서 생성된 데이터 조각들(212)은 사용되지 않은 상태로 방치 또는 폐기된다(221).Meanwhile, the previously generated data pieces 212 are left unused or discarded (221).

도 4는 본 발명의 또 다른 실시 예에 따른, 클라우드 서비스를 이용한 데이터 처리 방법을 나타내는 블록도이다. 도 4를 참조하면, 클라우드 데이터 저장 시스템은 데이터 통신 장치(310), 네트워크(320) 및 복수의 클라우드 서버들(331, 332, 333)을 포함한다. 4 is a block diagram illustrating a data processing method using a cloud service according to another embodiment of the present invention. 4, a cloud data storage system includes a data communication device 310, a network 320, and a plurality of cloud servers 331, 332, and 333.

도 4에서, 데이터 통신 장치(310), 네트워크(320) 및 복수의 클라우드 서버들(331, 332, 333)의 구성 및 동작 방법은 도 1의 데이터 통신 장치(110), 네트워크(120) 및 복수의 클라우드 서버들(131, 132, 133)과 유사하다. 다만, 도 4에서는 데이터 통신 장치(310)가 원본 데이터(311)를 먼저 암호화하고, 암호화된 데이터(312)를 분산 코딩하여 클라우드 서버들(131, 132, 133)에 저장될 복수의 조각들(313)을 생성하는 점이 상이하다. 클라우드 서버들(131, 132, 133)에 분산 저장되는 조각들(322)은 암호화된 조각들이므로, 이 경우 외부로부터의 해킹에 더욱 안전해지는 장점이 있다.4, the configuration and operation of the data communication device 310, the network 320, and the plurality of cloud servers 331, 332, 333 are similar to those of the data communication device 110, the network 120, Are similar to the cloud servers 131, 132, and 133 of FIG. 4, the data communication apparatus 310 first encodes the original data 311 and decodes the encrypted data 312 to generate a plurality of pieces (i.e., a plurality of pieces) to be stored in the cloud servers 131, 132, and 133 313). Since the pieces 322 distributedly stored in the cloud servers 131, 132, and 133 are encrypted pieces, in this case, there is an advantage of being safer for hacking from the outside.

본 실시 예에서, 데이터 통신 장치(310)는 먼저 원본 데이터(311)를 암호화하여 암호화한다. 이때, 암호화는 대칭키 암호화 또는 비대칭키 암호화일 수 있다. 대칭키 암호화는 상대적으로 짧은 길이의 키를 이용하여 빠르게 암호화 및 복호화를 하는 방법이다. 반면에, 비대칭키 암호화는 암호화 시에는 공개된 공개키를 이용하여, 복호화 시에는 공개키에 대응되는 개인키를 이용하는 방법이다. 대칭키 암호화의 예로서는 AES(Advanced Encryption Standard) 암호화가 있고, 비대칭키 암호화의 예로서는 RSA(Rivest Shamir Adleman) 암호화가 있다. 본 실시 예에서는 원본 데이터(311)의 암호화를 위해, 대칭키 암호화 중 AES 암호화를 이용하는 것으로 가정한다. 다만, 이는 예시적인 것으로서 본 발명의 범위는 이에 한정되지 않으며, AES 암호화 외에도 다양한 데이터 암호화 알고리즘이 원본 데이터(311)의 암호화에 사용될 수 있다 In this embodiment, the data communication apparatus 310 encrypts and encrypts the original data 311 first. At this time, the encryption may be symmetric key encryption or asymmetric key encryption. Symmetric key encryption is a method of fast encryption and decryption using a relatively short key. On the other hand, asymmetric key encryption is a method of using a public key disclosed in encryption and a private key corresponding to a public key in decryption. An example of symmetric key encryption is AES (Advanced Encryption Standard) encryption, and an example of asymmetric key encryption is Rivest Shamir Adleman (RSA) encryption. In the present embodiment, it is assumed that AES encryption is used during symmetric key encryption for encryption of the original data 311. [ However, the scope of the present invention is not limited thereto, and various data encryption algorithms in addition to AES encryption can be used for encrypting the original data 311

그리고, 데이터 통신 장치(310)는 암호화된 데이터(312)를 분산 코딩하여 복수의 조각들(313)을 생성하고, 생성된 조각들(313) 중 적어도 일부(322)를 네트워크(320)를 통해 복수의 클라우드 서버들(331, 332, 333)에 전송 및 분산 저장한다(321). 데이터 통신 장치(310)가 생성된 조각들(313)을 클라우드 서버들(331, 332, 333)에 분산 저장하는 방법은 도 1에서 설명한 바와 실질적으로 동일하다. The data communication device 310 then distributes the encrypted data 312 to generate a plurality of fragments 313 and transmits at least a portion 322 of the generated fragments 313 through the network 320 To the plurality of cloud servers 331, 332, and 333 (321). The method by which the data communication apparatus 310 distributes generated fragments 313 to the cloud servers 331, 332 and 333 is substantially the same as that described in FIG.

실시 예로서, 데이터 통신 장치(310)는 암호화에 사용된 키를 안전하게 보호하기 위해서, 새로운 데이터를 암호화할 때마다 랜덤하게(randomly) 새로운 키를 생성하여 사용한다. 그리고 사용된 키를 데이터 통신 장치(310) 내부에 보관하거나, 또는 사용된 키를 클라우드 서버들(331, 332, 333)에 저장할 수 있다. 사용된 키를 클라우드 서버들(331, 332, 333)에 저장하는 경우, 데이터 통신 장치(310)는 저장되는 키의 안정성 및 신뢰성을 담보하기 위해 키를 분산 코딩하여 복수의 키 조각들을 생성한 후, 키 조각들을 클라우드 서버들(331, 332, 333)에 분산 저장할 수 있다. 이 경우, 일부 키 조각들을 잃어버려도 나머지 키 조각들로부터 원래의 키를 복원할 수 있다. 한편, 키를 분산 코딩하는 방법은 암호화된 데이터(312)를 분산 코딩하는 데 사용된 방법과 상이할 수 있다. 예를 들어, 키를 분산 코딩하기 위해서 샤미르 비밀 분산 방법(shamir secret sharing)을 사용할 수 있다. As an embodiment, the data communication device 310 randomly generates and uses a new key each time it encrypts new data in order to securely protect the key used for encryption. The used keys may be stored in the data communication device 310 or the used keys may be stored in the cloud servers 331, 332, and 333. When the used key is stored in the cloud servers 331, 332, and 333, the data communication device 310 generates a plurality of key fragments by distributing the key to secure stability and reliability of the stored key , The key fragments may be distributedly stored in the cloud servers 331, 332, and 333. In this case, even if some key fragments are lost, the original key can be restored from the remaining key fragments. On the other hand, the method of distributive coding the key may differ from the method used to decode the encrypted data 312. For example, a shamir secret sharing scheme can be used to decode the key.

그리고, 분산 저장된 조각들(322)로부터 원본 데이터(311)를 복원할 때, 데이터 통신 장치(310)는 클라우드 서버들(331, 332, 333)로부터 복원에 필요한 최소 개수(예를 들어, 도 1에서 설명된 k개)이상의 조각들을 다운로드 또는 획득한다. 그리고, 획득한 조각들을 복호하여 암호화된 데이터(312)를 복원한다. 그리고, 데이터 통신 장치(310)가 앞서 암호화에 사용된 키를 이용하여, 암호화된 데이터(312)로부터 원본 데이터(311)를 복원한다. 이때, 키 조각들의 형태로 키를 클라우드 서버들(331, 332, 333)에 분산 저장하고 있는 경우, 원본 데이터(311)의 복원에 앞서, 데이터 통신 장치(310)는 키 조각들을 클라우드 서버들(331, 332, 333)로부터 다운로드하고, 다운로드 된 키 조각들을 복호하여 원래의 키를 미리 복원할 필요가 있다. When restoring the original data 311 from the distributed pieces 322, the data communication device 310 searches the cloud servers 331, 332, and 333 for the minimum number required for recovery (e.g., (K) or more pieces described in < / RTI > Then, the decrypted pieces are decrypted to recover the encrypted data 312. Then, the data communication apparatus 310 restores the original data 311 from the encrypted data 312 by using the key previously used for encryption. If the keys are distributed and stored in the cloud servers 331, 332 and 333 in the form of key pieces, the data communication device 310 transmits the key pieces to the cloud servers ( 331, 332, and 333, and decrypts the downloaded key fragments to restore the original key in advance.

위와 같은 구성에 따르면, 데이터를 분산 저장하기에 앞서 데이터를 암호화하는 단계를 거치므로, 외부로부터의 해킹에 대해 더욱 안전해질 수 있다.According to the above configuration, since data is encrypted prior to data distribution, it can be more secure against hacking from the outside.

도 5는 본 발명의 실시 예들에 따른, 복수의 클라우드 서버에 데이터를 업로드하는 방법 및 복수의 클라우드 서버로부터 데이터를 다운로드하는 방법을 나타내는 블록도들이다. 도 5의 업로드 방법 및 다운로드 방법은 도 1 내지 4에서 설명된 실시 예들에 공통적으로 적용될 수 있다.5 is a block diagram illustrating a method of uploading data to a plurality of cloud servers and a method of downloading data from a plurality of cloud servers, according to embodiments of the present invention. The uploading method and downloading method of Fig. 5 can be applied in common to the embodiments described in Figs. 1-4.

(a) 업로드시, 데이터 통신 장치(410)는 [n, k] 분산 코딩을 통해 원본 데이터(411)를 인코딩하여 복수의 조각들을 생성한다. 단, 데이터 통신 장치(410)는 [n, k] 분산 코딩을 하기 전에 원본 데이터(411)를 먼저 암호화할 수도 있다. 이 경우, [n, k] 분산 코딩은 암호화된 데이터에 대해 수행된다.(a) Upon uploading, the data communication device 410 encodes the original data 411 through [n, k] distributed coding to generate a plurality of fragments. However, the data communication apparatus 410 may encrypt the original data 411 before [n, k] distributed coding. In this case, [n, k] distributed coding is performed on the encrypted data.

그리고, 데이터 통신 장치(410)는 생성된 조각들을 네트워크(420)를 통해 복수의 클라우드 서버들(430)에 분산 저장한다. 이때, 데이터 통신 장치(410)는 도 5에서와 같이 생성된 조각들의 전부(421)를 분산 저장할 수도 있고, 생성된 조각들의 일부만을 분산 저장할 수도 있다. 단, 일부만을 분산 저장하는 경우, 분산 저장되는 조각들의 개수는 원본 데이터의 복원에 필요한 최소 개수(여기서는, k개) 이상이어야 한다. The data communication device 410 distributes the generated pieces to the plurality of cloud servers 430 through the network 420. [ At this time, the data communication apparatus 410 may distribute all of the pieces 421 generated as shown in FIG. 5, or may distribute only a part of the generated pieces. However, when only a part of the data is dispersively stored, the number of pieces of data to be scattered and stored must be equal to or larger than the minimum number (in this case, k) required for restoration of the original data.

(b) 다운로드시, 데이터 통신 장치(410)는 네트워크(420)를 통해 복수의 클라우드 서버들(430)에 분산 저장된 조각들(422)을 다운로드한다. 이때, 데이터 통신 장치(410)는 복수의 클라우드 서버들(430)에 분산 저장된 모든 조각들을 다운로드할 필요가 없이, 원본 데이터의 복원에 필요한 최소 개수(k개) 이상의 데이터만 다운로드하면 된다. (b) Upon downloading, the data communication device 410 downloads the pieces 422 distributedly stored in the plurality of cloud servers 430 via the network 420. At this time, the data communication device 410 does not need to download all the pieces of data scattered and stored in the plurality of cloud servers 430, but only needs to download data of a minimum number (k) necessary for restoration of original data.

가령, 복수의 클라우드 서버들(430) 중 일부(431)가 장애로 인해 불능이 되었다고 가정한다. 이러한 경우에도, 나머지 클라우드 서버들(432, 433)에 저장된 조각들의 개수가 복원에 필요한 최소 개수(k개) 이상이기만 하면, 데이터 통신 장치(410)는 나머지 클라우드 서버들(432, 433)에 저장된 조각들만을 다운로드하여 분산 코딩 방법의 복호 알고리즘을 통해 디코딩함으로써 원본 데이터(412)를 복원할 수 있다.For example, assume that a portion 431 of a plurality of cloud servers 430 is disabled due to failure. In this case, if the number of pieces stored in the remaining cloud servers 432 and 433 is equal to or greater than the minimum number (k) required for restoration, the data communication apparatus 410 stores the restored data in the remaining cloud servers 432 and 433 The original data 412 can be restored by decoding only the fragments through a decoding algorithm of the distributed coding method.

이때, 다운로드한 조각들(422)이 암호화된 데이터를 분산 코딩한 것들이면, 데이터 통신 장치(410)는 다운로드한 조각들(422)로부터 암호화된 데이터를 먼저 복원하고, 그 다음 암호화된 데이터를 다시 복호하여 원본 데이터(412)를 복원하게 된다.At this time, if the downloaded pieces 422 are those in which the encrypted data is distributed-coded, the data communication device 410 first restores the encrypted data from the downloaded pieces 422, And restores the original data 412.

도 6은 클라우드 서버들의 저장 가능한 공간에 따라, 데이터를 분산 코딩하여 클라우드 서버들에 전송하는 방법을 나타내는 블록도이다. 도 6에서 데이터 통신 장치(510)는 클라우드 서버들(531, 532, 533)의 저장 가능한 공간을 모니터링 또는 확인하고, 그에 따라 분산 코딩 방법을 조정한다.6 is a block diagram illustrating a method of distributing and transmitting data to cloud servers according to a storable space of cloud servers. In FIG. 6, the data communication apparatus 510 monitors or confirms the storable space of the cloud servers 531, 532, and 533, and adjusts the distributed coding method accordingly.

도 6에서, 제 1 클라우드 서버(531), 제 2 클라우드 서버(532) 및 제 3 클라우드 서버(533)에 대해 데이터 통신 장치(510)가 사용 가능한 공간이 각각 15기가바이트, 2기가바이트 및 7기가바이트라고 가정한다. 이때, 제 2 클라우드 서버(532)는 저장 가능한 공간이 2기가바이트이므로, 2기가바이트를 초과하는 조각을 저장할 수 없다. 6, the available space of the data communication apparatus 510 for the first cloud server 531, the second cloud server 532 and the third cloud server 533 is 15 gigabytes, 2 gigabytes, and 7 gigabytes, respectively, Assume Gigabyte. At this time, the second cloud server 532 can not store pieces exceeding 2 gigabytes because the space that can be stored is 2 gigabytes.

따라서, 데이터 통신 장치(510)는 클라우드 서버들(531, 532, 533)의 사용 가능한 공간을 확인하고, 확인 결과에 따라 생성되는 조각들(512, 513)의 크기가 2기가바이트 이하가 되도록 분산 코딩 방법을 조정한다. 예를 들어, 생성되는 조각들(512, 513)의 크기를 2기가바이트로 하는 경우, 원본 데이터(511)로부터 두 개의 데이터 조각이 생성된다. 따라서, 이 경우에는 [n, 2] 분산 코딩 방법이 사용된다. 반면에, 생성되는 조각들(512, 513)의 크기를 1기가바이트로 하는 경우, 원본 데이터(511)로부터는 네 개의 데이터 조각이 생성된다. 따라서, 이 경우에는 [n, 4] 분산 코딩 방법이 사용된다. n은 데이터 조각의 개수에 패리티 조각의 개수를 더한 것이므로, 사용자가 원하는 패리티 조각의 개수에 따라 자유롭게 결정될 수 있다.Accordingly, the data communication device 510 confirms the usable space of the cloud servers 531, 532, and 533, and determines that the size of the pieces 512 and 513 generated according to the confirmation result is less than 2 gigabytes Adjust the coding method. For example, when the size of the generated pieces 512 and 513 is 2 gigabytes, two pieces of data are generated from the original data 511. Therefore, in this case, the [n, 2] distributed coding method is used. On the other hand, when the size of the generated pieces 512 and 513 is 1 gigabyte, four pieces of data are generated from the original data 511. Fig. Therefore, in this case, the [n, 4] distributed coding method is used. Since n is the number of data pieces plus the number of parity pieces, it can be determined freely according to the number of parity pieces desired by the user.

도 6의 실시 예에서는, 생성되는 조각들(512, 513)의 크기가 2기가바이트이고 패리티 조각의 개수는 3인 [3+2, 2] 분산 코딩 방법이 예시되었다. 이 예에서, 데이터 통신 장치(510)는 생성된 조각들(512, 513) 중 3개의 조각(B, C, D)을 제 1 클라우드 서버(531), 제 2 클라우드 서버(532) 및 제 3 클라우드 서버(533)에 각각 나누어 저장하고, 나머지 조각들(A, E)은 사용하지 않는다. 한편, 이 경우, 데이터 통신 장치(510)가 클라우드 서버들(531, 532, 533)로부터 단지 두 개의 조각들만을 획득하기만 하면 원본 데이터(511)를 복원할 수 있음은 도 1 내지 도 5에서 설명한 바와 동일하다.In the embodiment of FIG. 6, the [3 + 2, 2] distributed coding method in which the generated pieces 512 and 513 are 2 gigabytes and the number of parity fragments is 3 has been illustrated. In this example, the data communication device 510 sends three pieces (B, C, D) of the generated pieces 512, 513 to the first cloud server 531, the second cloud server 532, And separately stored in the cloud server 533, and the remaining pieces A and E are not used. 1 to 5 that data communication device 510 can recover original data 511 only by obtaining only two pieces from cloud servers 531, 532, and 533. In this case, The same as described above.

도 7은 저장 가능한 클라우드 서버들의 저장 가능한 공간에 따라, 레이드 레벨을 달리하여 데이터를 전송하는 방법을 나타내는 블록도이다. 도 7에서 데이터 통신 장치는 도 6에서와 유사하게 클라우드 서버들(631, 632, 633)의 저장 가능한 공간을 모니터링 또는 확인하고, 그에 따라 원본 데이터를 분산 코딩 및 분산 저장한다. 다만, 도 7에서는 복수의 클라우드 서버들(631, 632, 633)에 조각들을 저장할 때 미리 결정된 레이드 레벨들을 적용하여, 조각들을 각각 순차적으로 또는 병렬적으로 저장한다.7 is a block diagram illustrating a method for transmitting data at different raid levels according to the storable space of storable cloud servers. In FIG. 7, the data communication apparatus monitors or confirms the storable space of the cloud servers 631, 632, 633 similarly to FIG. 6, and distributes and distributes the original data accordingly. However, in FIG. 7, when the pieces are stored in the plurality of cloud servers 631, 632, and 633, predetermined levels of the raid are applied to store the pieces sequentially or in parallel.

도 7에서, 제 1 클라우드 서버(631), 제 2 클라우드 서버(632) 및 제 3 클라우드 서버(633)의 저장 가능한 공간 및 구성 상태는 도 6의 제 1 클라우드 서버(531), 제 2 클라우드 서버(532) 및 제 3 클라우드 서버(533)와 각각 동일하다.7, the storable space and the configuration state of the first cloud server 631, the second cloud server 632 and the third cloud server 633 are the same as those of the first cloud server 531, The third cloud server 532 and the third cloud server 533, respectively.

본 실시 예에서, 데이터 통신 장치(미도시)는 사용 가능한 클라우드 서버들(631, 632, 633)의 개수 및 그것들의 저장 공간에 따라, 특정한 레이드 레벨을 적용하여 조각들을 저장할 수 있다. 예를 들어, 데이터 통신 장치가 다섯 개의 원본 데이터들을 분산 코딩하여 다섯 개의 조각 세트(set)(641, 642, 643, 644, 645)를 생성하고, 각각의 개별 조각들은 1기가바이트의 크기를 갖는다고 가정한다. 또한, 제 1 조각 세트(641) 및 제 2 조각 세트(642)는 각각 하나의 데이터 조각과 두 개의 패리티 조각들을 포함하는 총 세 개의 조각들로 구성되고, 제 3 조각 세트(643)는 두 개의 데이터 조각과 네 개의 패리티 조각들을 포함하는 총 여섯 개의 조각들로 구성되고, 제 4 조각 세트(644) 및 제 5 조각 세트(645)는 각각 데이터 조각 및 패리티 조각을 하나씩 포함하는 총 두 개의 조각들로 구성된다고 가정한다. In this embodiment, a data communication device (not shown) can store pieces by applying a specific raid level, depending on the number of available cloud servers 631, 632, 633 and their storage space. For example, a data communication device may distributively code five source data to generate five sets of pieces 641, 642, 643, 644, and 645, each individual piece having a size of one gigabyte . Also, the first piece set 641 and the second piece set 642 are each composed of a total of three pieces each including one data piece and two parity pieces, and the third piece set 643 is composed of two pieces A fourth piece set 644 and a fifth piece set 645 are composed of a total of six pieces including a data piece and four parity pieces, .

이러한 가정들 하에서, 데이터 통신 장치는 제 1 조각 세트(641)부터 제 5 조각 세트(645)까지 순차적으로 클라우드 서버들(631, 632, 633)에 분산 저장한다. 제 2 클라우드 서버(632)의 저장 가능한 공간이 2기가바이트이므로, 제 1 조각 세트(641) 및 제 2 조각 세트(642)에 대해서는 레이드5를 적용하여 세 개의 클라우드 서버들(631, 632, 633)에 하나씩 번갈아 저장하는 방식으로 조각들을 분산 저장할 수 있다. 제 3 조각 세트(643)를 저장할 때는 사용 가능한 클라우드 서버가 두 개이므로, 데이터 통신 장치는 레이드5를 적용하여 제 3 조각 세트(643)를 저장하되 두 개의 클라우드 서버들(631, 633)에 조각들을 하나씩 번갈아 저장하는 방식으로 저장한다. 제 4 조각 세트(644)를 저장할 때는, 저장할 조각이 하나의 데이터 조각과 하나의 패리티 조각이므로, 레이드1을 적용하여 미러(mirror) 형태로 데이터 조각을 제 1 클라우드 서버(631)에 패리티 조각을 제 3 클라우드 서버(633)에 각각 저장한다. 한편, 이와는 달리, 레이드0을 적용하여 복수의 조각들을 하나의 클라우드 서버에 저장할 수도 있다. 예를 들어, 데이터 통신 장치는 제 5 조각 세트(645) 전부를 제 1 클라우드 서버(631)에 저장할 수 있다. Under these assumptions, the data communication device distributes and stores the data sequentially from the first piece set 641 to the fifth piece set 645 to the cloud servers 631, 632, and 633. Since the second cloud server 632 has 2 gigabytes of space available for storing, it is possible to apply the raid 5 to the first piece set 641 and the second piece set 642 so that the three cloud servers 631, 632, 633 ) In a manner such that they are alternately stored. Since there are two cloud servers available when storing the third piece set 643, the data communication device stores the third piece set 643 by applying the raid 5 to the two cloud servers 631 and 633, Are stored one by one. When storing the fourth piece set 644, since the piece to be stored is one piece of data and one piece of parity, it is possible to apply the RAID 1 to the first cloud server 631 in the form of a mirror, And stores them in the third cloud server 633, respectively. Alternatively, a plurality of pieces may be stored in one cloud server by applying Raid 0. For example, the data communication device may store all of the fifth piece set 645 in the first cloud server 631. [

복수의 클라우드 서버들에 어떤 레이드 레벨을 적용할 것인지는, 사용가능한 클라우드 서버들의 개수 및 그것들의 저장 공간에 따라 데이터 통신 장치가 선택할 수 있다.The data communication apparatus can select which level of the RAID level to apply to the plurality of cloud servers, depending on the number of available cloud servers and their storage space.

도 8은 본 발명의 실시 예들에 따른, 클라우드 서비스를 이용한 데이터 처리 방법을 나타내는 순서도이다. 도 8을 참조하면, 데이터 처리 방법은 S110 단계 내지 S140 단계를 포함한다.8 is a flowchart illustrating a data processing method using a cloud service according to embodiments of the present invention. Referring to FIG. 8, the data processing method includes steps S110 to S140.

S110 단계에서, 데이터 통신 장치(예를 들어, 도 1의 110)는 원본 데이터(예를 들어, 도 1의 111)를 분산 코딩하여, 복수의 조각들을 생성한다. 이때의 분산 코딩 방법은 예를 들어, 삭제 코딩 방법 중 리드-솔로몬 코딩 방법일 수 있다. 생성된 조각들은 적어도 하나의 데이터 조각 및 적어도 하나의 패리티 조각을 포함할 수 있다.In step S110, the data communication device (for example, 110 in FIG. 1) distributes the original data (for example, 111 in FIG. 1) to generate a plurality of pieces. The distributed coding method at this time may be, for example, a Reed-Solomon coding method among deletion coding methods. The generated pieces may include at least one data piece and at least one parity piece.

S120 단계에서, 데이터 통신 장치는 생성된 조각들 중 적어도 일부의 조각들을 네트워크(예를 들어, 도 1의 120)를 통해 복수의 클라우드 서버들(예를 들어, 도 1의 131, 132, 133)에 분산 저장한다. 이때, 분산 저장되는 적어도 일부의 조각들의 개수는 원본 데이터를 복원하는 데 필요한 조각들의 최소 개수보다 크거나 같다. In step S120, the data communication device transmits the pieces of at least some of the generated pieces to a plurality of cloud servers (e.g., 131, 132, and 133 in FIG. 1) through a network (e.g., . At this time, the number of at least some fragments to be dispersively stored is equal to or greater than the minimum number of fragments required to restore the original data.

S110 단계 및 S120 단계는 데이터 저장 단계로서, S120 단계가 종료되면 원본 데이터는 복수의 클라우드 서버들에 분산 저장된다. 이어지는 S130 단계 및 S140 단계는 데이터 읽기 단계 또는 데이터 복원 단계로서, 데이터 통신 장치가 분산 저장된 조각들로부터 원본 데이터를 복원할 때 수행된다.The steps S110 and S120 are data storing steps. When the step S120 is completed, the original data is distributed and stored in a plurality of cloud servers. Subsequent steps S130 and S140 are a data reading step or a data restoring step, which is performed when the data communication apparatus restores the original data from the scattered pieces.

S130 단계에서, 데이터 통신 장치는 복수의 클라우드 서버들 중 적어도 일부로부터 분산 저장된 조각들을 읽어낸다. 이때 읽어내는 조각들의 개수는 원본 데이터를 복원하는 데 필요한 조각들의 최소 개수보다 크거나 같다. In step S130, the data communication apparatus reads out distributedly stored pieces from at least a part of the plurality of cloud servers. The number of pieces to read is equal to or greater than the minimum number of pieces needed to restore the original data.

S140 단계에서, 데이터 통신 장치는 S110 단계에서 사용된 것과 동일한 분산 코딩 방법의 복호 알고리즘을 통해 읽어낸 조각들을 복호하여 원본 데이터를 복원한다. 한편, 데이터 통신 장치의 구성 및 동작 방법에 대해 여기서 설명되지 않은 다른 구체적인 내용은 도 1 내지 도 7에서 설명한 바와 동일하다.In step S140, the data communication apparatus decodes the read fragments through a decoding algorithm of the same distributed coding method used in step S110, and restores the original data. Meanwhile, other details of the configuration and operation method of the data communication apparatus not described here are the same as those described in Figs. 1 to 7.

상기와 같은 구성에 따르면, 원본 데이터의 분산 코딩된 조각들을 복수의 클라우드 서버에 분산 저장하므로, 그 중 일부(단, 복원 가능한 최소 수(k) 미만)의 클라우드 서버가 해킹된다 하더라도 원본 데이터는 외부로 유출되지 않는다. 따라서, 클라우드 저장 서비스의 안전성이 향상된다.According to the above configuration, since the distributed coded pieces of original data are distributed and stored in a plurality of cloud servers, even if a part of the cloud servers (less than the minimum recoverable number k) is hacked, . Therefore, the security of the cloud storage service is improved.

또한, 클라우드 서버들에 저장된 조각들 중 일부(단, 복원 가능한 최소 수(k) 이상)만 획득하여도 원본 데이터의 복원이 가능하므로, 일부 클라우드 서버가 불능이 되어도 나머지 클라우드 서버로부터 원래의 원본 데이터를 성공적으로 복원할 수 있다. 따라서, 클라우드 저장 서비스의 신뢰성 및 안정성이 향상된다.In addition, even if some of the pieces stored in the cloud servers (only the minimum number (k) that can be restored) are acquired, the original data can be restored. Therefore, even if some cloud servers are disabled, Can be restored successfully. Therefore, the reliability and stability of the cloud storage service are improved.

또한, 원본 데이터를 나누어 복수의 클라우드 서버에 병렬적으로 저장하므로, 데이터 업로드 속도 및 다운로드 속도가 향상될 수 있고, 작은 저장 용량을 제공하는 클라우드 서버들을 모아서 큰 용량의 데이터를 저장하는 등 클라우드 서버의 저장 공간을 효율적으로 활용할 수 있다. 따라서, 클라우드 저장 서비스의 효율성이 향상된다.In addition, since the original data is divided and stored in parallel in a plurality of cloud servers, data uploading speed and downloading speed can be improved, and cloud servers providing small storage capacity can be collected to store a large amount of data. The storage space can be efficiently utilized. Thus, the efficiency of the cloud storage service is improved.

도 9는 본 발명의 일 실시 예에 따라, 도 8의 S110 단계를 구체화한 순서도이다. 도 9를 참조하면, S110 단계는 S111 단계 및 S112 단계를 포함한다.FIG. 9 is a flow chart embodying step S110 of FIG. 8 according to an embodiment of the present invention. Referring to FIG. 9, step S110 includes steps S111 and S112.

S111 단계에서, 데이터 통신 장치는 원본 데이터를 암호화한다. 이때, 원본 데이터를 암호화하는 방법에 대한 구체적인 내용은 도 4에서 설명된 바와 동일하다.In step S111, the data communication apparatus encrypts the original data. At this time, the details of the method of encrypting the original data are the same as those described in Fig.

S112 단계에서, 데이터 통신 장치는 암호화된 데이터를 분산 코딩하여, 복수의 조각들을 생성한다. 이때의 분산 코딩 방법은 예를 들어, 삭제 코딩 방법 중 리드-솔로몬 코딩 방법일 수 있다. 생성된 조각들은 적어도 하나의 암호화된 데이터 조각 및 적어도 하나의 패리티 조각을 포함할 수 있다.In step S112, the data communication apparatus variably codes the encrypted data to generate a plurality of pieces. The distributed coding method at this time may be, for example, a Reed-Solomon coding method among deletion coding methods. The generated fragments may include at least one encrypted data fragment and at least one parity fragment.

S112 단계가 종료하면, 도 8의 S120 단계로 진행한다.When the step S112 ends, the process proceeds to the step S120 of FIG.

상기와 같은 구성들에 따르면, 원본 데이터를 암호화하여 클라우드 서버들에 분산 저장하므로, 저장된 데이터의 안전성이 향상된다.According to the above-described configurations, since the original data is encrypted and distributed to the cloud servers, the security of the stored data is improved.

도 10은 본 발명의 일 실시 예에 따라, 도 8의 S140 단계를 구체화한 순서도이다. 도 10을 참조하면, S140 단계는 S141 단계 및 S142 단계를 포함한다.FIG. 10 is a flowchart illustrating the step S140 of FIG. 8 according to an embodiment of the present invention. Referring to FIG. 10, step S140 includes steps S141 and S142.

도 8의 S130 단계가 종료하면, S141 단계가 시작된다.When step S130 of FIG. 8 is finished, step S141 is started.

S141 단계에서, 데이터 통신 장치(110)는 읽어낸 조각들을 복호하여 암호화된 데이터를 복원한다. 이때, 도 9의 S112 단계에서 사용된 것과 동일한 분산 코딩 방법을 사용하여 읽어낸 조각들을 복호할 수 있다.In step S141, the data communication apparatus 110 decrypts the read fragments to recover the encrypted data. At this time, fragments read using the same distributed coding method used in step S112 of FIG. 9 can be decoded.

S142 단계에서, 데이터 통신 장치(110)는 암호화된 데이터를 복호하여 원본 데이터를 복원한다. 이때, 암호화된 데이터로부터 원본 데이터를 복원하는 방법에 대한 구체적인 내용은 도 4에서 설명된 바와 동일하다.In step S142, the data communication apparatus 110 decrypts the encrypted data and restores the original data. At this time, the details of the method of restoring the original data from the encrypted data are the same as those described in Fig.

상기와 같은 구성에 따르면, 암호화되어 분산 저장된 조각들로부터 원래의 원본 데이터가 복원된다.According to the above arrangement, the original original data is restored from the encrypted and distributed pieces.

한편, 본 명세서의 표현들 중 데이터 통신 장치가 클라우드 서버에 조각을 저장한다는 표현은, 클라우드 서버에 조각이 저장되도록 데이터 통신 장치가 클라우드 서버를 향해 조각을 전송하는 것을 의미한다.On the other hand, the expression that the data communication device stores fragments in the cloud server means that the data communication device transmits the fragments to the cloud server so that the fragments are stored in the cloud server.

본 명세서의 상세한 설명에서는 구체적인 실시 예를 들어 설명하였으나, 본 명세서의 범위에서 벗어나지 않는 한 각 실시 예는 여러 가지 형태로 변형될 수 있다. 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.

또한, 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 명세서의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 명세서의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 및 그 균등물에 의해 정해져야 한다. Also, although specific terms are used herein, they are used for the purpose of describing the invention only and are not used to limit the scope of the present disclosure as defined in the claims or the claims. Therefore, the scope of the present specification should not be limited to the above-described embodiments, but should be defined by the appended claims and their equivalents.

110, 210, 310, 410, 510: 데이터 통신 장치
131, 132, 133, 231, 232, 233, 331, 332, 333, 431, 432, 433, 531, 532, 533, 631, 632, 633: 클라우드 서버
120, 220, 320, 420: 네트워크
111, 211, 311, 411, 511: 원본 데이터
110, 210, 310, 410, 510: Data communication device
631, 633, 633, 633, 631, 432, 433, 531, 532, 533, 631, 332, 333, 331, 332, 333,
120, 220, 320, 420: network
111, 211, 311, 411, 511: original data

Claims (8)

데이터 통신 장치가 원본 데이터를 분산 코딩하여, 하나 이상의 데이터 조각들 및 하나 이상의 패리티 조각들을 포함하는 복수의 조각들을 생성하는 단계;
상기 데이터 통신 장치가 상기 데이터 통신 장치에 의해 생성된 복수의 조각들 중 적어도 일부의 조각들을 복수의 클라우드 서버들에 분산 전송하는 단계를 포함하되,
상기 복수의 클라우드 서버들은 각각이 상이한 클라우드 서비스 제공자들에 의해 운영되는 적어도 두 개의 클라우드 서버를 포함하며,
상기 복수의 조각들을 생성하는 단계는,
상기 원본 데이터를 암호화하는 단계; 및
상기 암호화된 상기 원본 데이터를 분산 코딩하여 상기 복수의 조각들을 생성하는 단계를 포함하되, 상기 원본 데이터의 상기 암호화에 사용된 키는 상기 데이터 통신 장치에 의해 분산 코딩되어 상기 복수의 클라우드 서버들에 분산 저장되며,
상기 데이터 통신 장치는 프록시 서버를 통하지 않고, 네트워크를 통해 상기 복수의 클라우드 서버들에 직접 연결되어 데이터 통신을 수행하는 사용자 단말인 것을 특징으로 하는, 데이터 통신 장치의 데이터 처리 방법.
The data communication device distributively coding the original data to generate a plurality of pieces comprising one or more pieces of data and one or more pieces of parity;
The data communication device distributing at least some pieces of the plurality of pieces generated by the data communication device to a plurality of cloud servers,
The plurality of cloud servers each including at least two cloud servers operated by different cloud service providers,
Wherein generating the plurality of pieces comprises:
Encrypting the original data; And
And generating the plurality of fragments by distributing the encrypted original data, wherein the key used for the encryption of the original data is distributed-coded by the data communication device to be distributed to the plurality of the cloud servers Stored,
Wherein the data communication device is a user terminal directly connected to the plurality of cloud servers via a network for communicating data without going through a proxy server.
제 1 항에 있어서,
상기 분산 전송하는 단계는,
상기 데이터 통신 장치에 의해 생성된 생성된 복수의 조각들 중 하나 이상의 패리티 조각들 만을 상기 복수의 클라우드 서버들에 분산 전송하되, 상기 복수의 클라우드 서버들에 분산 전송되는 패리티 조각들의 수는 상기 데이터 조각들의 수 이상인, 데이터 통신 장치의 데이터 처리 방법.
The method according to claim 1,
Wherein the distributed transmission comprises:
Wherein the number of parity fragments distributed and transmitted to the plurality of cloud servers is determined by dividing the number of parity fragments transmitted to the plurality of cloud servers by the number of parity fragments distributed to the plurality of cloud servers, Of the data communication apparatus.
제 1 항에 있어서,
상기 생성된 복수의 조각들의 개수 또는 상기 생성된 복수의 조각들 각각의 크기는 상기 복수의 클라우드 서버들의 개수 또는 상기 복수의 클라우드 서버들의 저장 가능한 공간을 참조하여 결정되는, 데이터 통신 장치의 데이터 처리 방법.
The method according to claim 1,
Wherein the number of generated pieces or the size of each of the generated plurality of pieces is determined by referring to the number of the plurality of cloud servers or the storable space of the plurality of cloud servers .
제 1 항에 있어서,
상기 복수의 클라우드 서버들에 분산 전송하는 단계는,
미리 결정된 레이드 레벨에 따라, 상기 적어도 일부의 조각들을 상기 복수의 클라우드 서버들 중 적어도 일부에 순차적으로 또는 병렬적으로 전송하는 단계를 포함하는, 데이터 통신 장치의 데이터 처리 방법.
The method according to claim 1,
The method of claim 1,
And sending said at least some pieces to said at least some of said plurality of cloud servers sequentially or in parallel according to a predetermined level of raid.
데이터 통신 장치가 복수의 클라우드 서버들로부터 복수의 조각들을 읽어내는 단계; 및
상기 데이터 통신 장치가 읽어낸 복수의 조각들을 복호하여 원본 데이터를 복원하는 단계를 포함하되,
상기 복수의 클라우드 서버들은 각각이 상이한 클라우드 서비스 제공자들에 의해 운영되는 적어도 두 개의 클라우드 서버를 포함하며,
상기 원본 데이터를 복원하는 단계는,
상기 복수의 클라우드 서버들에 분산 저장된 암호화에 사용된 키를 복원하는 단계;
상기 읽어낸 복수의 조각들을 상기 복원된 암호화에 사용된 키를 이용하여 복호하여 암호화된 데이터를 복원하는 단계; 및
상기 암호화된 데이터를 복호하여 상기 원본 데이터를 복원하는 단계를 포함하되,
상기 데이터 통신 장치는 프록시 서버를 통하지 않고, 네트워크를 통해 상기 복수의 클라우드 서버들에 직접 연결되어 데이터 통신을 수행하는 사용자 단말인 것을 특징으로 하는, 데이터 통신 장치의 데이터 처리 방법.
The data communication device reading a plurality of pieces from a plurality of cloud servers; And
And decoding the plurality of fragments read by the data communication apparatus to recover original data,
The plurality of cloud servers each including at least two cloud servers operated by different cloud service providers,
Wherein the step of restoring the original data comprises:
Restoring a key used for encryption distributed to the plurality of cloud servers;
Decrypting the read pieces using the key used for the restored encryption and restoring the encrypted data; And
And decrypting the encrypted data to restore the original data,
Wherein the data communication device is a user terminal directly connected to the plurality of cloud servers via a network for communicating data without going through a proxy server.
제 5 항에 있어서,
상기 읽어낸 복수의 조각들의 복호는 상기 복수의 조각들을 생성하는 데 사용된 분산 코딩 방법의 복호 알고리즘을 통해 수행되는, 데이터 통신 장치의 데이터 처리 방법.
6. The method of claim 5,
Wherein the decoding of the read plurality of fragments is performed through a decoding algorithm of a distributed coding method used to generate the plurality of fragments.
제 6 항에 있어서,
상기 암호화된 데이터의 복호는 상기 원본 데이터를 암호화하는 데 사용된 암호화 방법의 복호 알고리즘을 통해 수행되는, 데이터 통신 장치의 데이터 처리 방법.
The method according to claim 6,
Wherein the decryption of the encrypted data is performed through a decryption algorithm of an encryption method used to encrypt the original data.
제 5 항에 있어서,
상기 읽어낸 복수의 조각들은 상기 데이터 통신 장치에 의해 원본 데이터로부터 생성되어 상기 복수의 클라우드 서버들에 분산 저장된 패리티 조각들 중 적어도 일부만으로 구성되며, 적어도 일부의 패리티 조각들의 수는 상기 데이터 통신 장치에 의해 상기 원본 데이터로부터 생성된 데이터 조각들의 수 이상인, 데이터 통신 장치의 데이터 처리 방법.
6. The method of claim 5,
Wherein the plurality of fragments read from the data communication device comprises at least a portion of parity fragments generated from original data and distributed to the plurality of cloud servers, Wherein the number of data fragments generated from the source data is equal to or greater than the number of data fragments generated from the source data.
KR1020160039576A 2016-03-31 2016-03-31 Data communication apparatus using cloud service and method for data processing thereof KR101704538B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160039576A KR101704538B1 (en) 2016-03-31 2016-03-31 Data communication apparatus using cloud service and method for data processing thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160039576A KR101704538B1 (en) 2016-03-31 2016-03-31 Data communication apparatus using cloud service and method for data processing thereof

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020140029397A Division KR20150107062A (en) 2014-03-13 2014-03-13 Data communication apparatus using cloud service and method for data processing thereof

Publications (2)

Publication Number Publication Date
KR20160042839A true KR20160042839A (en) 2016-04-20
KR101704538B1 KR101704538B1 (en) 2017-02-09

Family

ID=55917511

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160039576A KR101704538B1 (en) 2016-03-31 2016-03-31 Data communication apparatus using cloud service and method for data processing thereof

Country Status (1)

Country Link
KR (1) KR101704538B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113780798A (en) * 2021-09-07 2021-12-10 杭州天宽科技有限公司 Key index display system based on cloud computing

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130097350A (en) * 2012-02-24 2013-09-03 한국전자통신연구원 Apparatus and method for converting replication-based file into parity-based file in the asymmetric clustering file system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130097350A (en) * 2012-02-24 2013-09-03 한국전자통신연구원 Apparatus and method for converting replication-based file into parity-based file in the asymmetric clustering file system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
박승제 외 1명, ‘멀티 클라우드 기반의 안전한 기업 정보 저장 시스템 설계 및 구현’, 한국정보기술학회논문지 제11권 제3호 , 2013.3, pp.151-157 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113780798A (en) * 2021-09-07 2021-12-10 杭州天宽科技有限公司 Key index display system based on cloud computing

Also Published As

Publication number Publication date
KR101704538B1 (en) 2017-02-09

Similar Documents

Publication Publication Date Title
EP3078179B1 (en) Data transfer optimizations
US8392474B2 (en) Web distributed storage system
EP3062261A1 (en) Community-based de-duplication for encrypted data
US20090063861A1 (en) Information security transmission system
JP2016513825A (en) Safety communication method and apparatus
CN110868291B (en) Data encryption transmission method, device, system and storage medium
US11196558B1 (en) Systems, methods, and computer-readable media for protecting cryptographic keys
CN112187741B (en) Login authentication method and device based on operation and maintenance audit system and electronic device
JP5985884B2 (en) Information processing apparatus, information processing method, and information processing system
KR20150107062A (en) Data communication apparatus using cloud service and method for data processing thereof
CN104426849A (en) Method and system for realizing data security protection
KR101704538B1 (en) Data communication apparatus using cloud service and method for data processing thereof
CN115828290A (en) Encryption and decryption method and device based on distributed object storage
KR20170084802A (en) Methdo and system for transmitting secure data in a terminal
KR101812311B1 (en) User terminal and data sharing method of user terminal based on attributed re-encryption
CN116032499A (en) Distributed cloud file storage method and system, user terminal and cloud device thereof
KR101595056B1 (en) System and method for data sharing of intercloud enviroment
CN112468291A (en) Method, device and system for synchronizing sensitive data, computer equipment and computer readable storage medium
JP5821040B2 (en) Data management device, data division device, and data restoration device
Kapusta et al. Selective all-or-nothing transform: Protecting outsourced data against key exposure
TWI835684B (en) Backup system and backup method for instant messaging service data
JP6492785B2 (en) Information processing system, information processing method, and information processing program
KR20150034591A (en) Cloud server for re-encrypting the encrypted data and re-encrypting method thereof
KR102150806B1 (en) Method for protecting data
Liu et al. Efficient and secure data forwarding for erasure-code-based cloud storage

Legal Events

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

Payment date: 20200203

Year of fee payment: 4