KR102023038B1 - Data security methods and systems - Google Patents

Data security methods and systems Download PDF

Info

Publication number
KR102023038B1
KR102023038B1 KR1020190015227A KR20190015227A KR102023038B1 KR 102023038 B1 KR102023038 B1 KR 102023038B1 KR 1020190015227 A KR1020190015227 A KR 1020190015227A KR 20190015227 A KR20190015227 A KR 20190015227A KR 102023038 B1 KR102023038 B1 KR 102023038B1
Authority
KR
South Korea
Prior art keywords
data
server
divided
user terminal
encrypted
Prior art date
Application number
KR1020190015227A
Other languages
Korean (ko)
Inventor
엄성민
Original Assignee
(주)데이터리퍼블릭
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)데이터리퍼블릭 filed Critical (주)데이터리퍼블릭
Priority to KR1020190015227A priority Critical patent/KR102023038B1/en
Application granted granted Critical
Publication of KR102023038B1 publication Critical patent/KR102023038B1/en

Links

Images

Classifications

    • 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
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • H04L2209/38
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

Provided is a data security method. The data security method includes: a step in which a server obtains first data from a first user terminal; a step in which the server divides the obtained first data; a step in which the server shuffles the divided data through a preset method; a step in which the server obtains second data including information about the division of the first data and information about the preset method; a step in which the server encodes at least one third datum of the divided first data and the second data by using a first password key; a step in which the server transmits the encoded data to the first user terminal; and a step in which the server transmits the rest of the divided first data excluding the third datum to an external server. Therefore, the present invention is capable of increasing security as well as data transmission rates.

Description

데이터 보안 방법 및 시스템{DATA SECURITY METHODS AND SYSTEMS}DATA SECURITY METHODS AND SYSTEMS

본 발명은 데이터 보안 방법 및 시스템에 관한 것이다. The present invention relates to a data security method and system.

데이터 보안에 대한 중요성은 날로 증가하고 있다. 더 강한 데이터 보안 방법과 관련된 연구가 진행되고 있으나, 강력한 보안 방법일수록 복잡한 암호화 알고리즘을 적용하여 암호화 및 복호화에 오랜 시간이 걸리는 단점이 존재한다. 이러한 단점은 암호화 하고자 하는 데이터의 크기가 커질수록 더욱 두드러진다. 즉, 크기가 큰 데이터를 복잡한 알고리즘으로 암호화 하면 데이터 처리 속도가 매우 낮아지는 문제점이 존재한다. 따라서, 효율적인 데이터 보안 방법의 필요성이 대두되고 있다.The importance of data security is increasing day by day. Although studies on stronger data security methods have been conducted, there are disadvantages in that stronger security methods take longer to encrypt and decrypt by applying complex encryption algorithms. This disadvantage is more prominent as the size of the data to be encrypted increases. In other words, if a large data is encrypted using a complex algorithm, there is a problem that the data processing speed becomes very low. Thus, there is a need for an efficient data security method.

한편, 블록체인(Block Chain)은 네트워크에 참여하는 모든 사용자가 관리 대상이 되는 모든 데이터를 분산하여 저장하는 데이터 분산처리기술을 말한다. 거래 정보가 담긴 원장(原帳)을 거래 주체나 특정 기관에서 보유하는 것이 아니라 네트워크 참여자 모두가 나누어 가지는 기술이라는 점에서 '분산원장기술(DLT:Distributed Ledger Technology)' 또는 '공공거래장부'라고도 한다. 블록체인은 거래 내용이 담긴 블록(Block)을 사슬처럼 연결(chain)한 것이라 하여 붙여진 명칭이다.On the other hand, block chain refers to a data distribution processing technology in which all users participating in the network distribute and store all data managed. It is also called 'Distributed Ledger Technology (DLT)' or 'Public Transaction Book' in that the ledger containing transaction information is not held by a trading entity or a specific institution but is divided among all network participants. . Blockchain is a name given as a chain of blocks containing transactions.

블록체인은 금융기관에서 모든 거래를 담보하고 관리하는 기존의 금융 시스템에서 벗어나 P2P(Peer to Peer;개인 대 개인) 거래를 지향하는, 탈(脫)중앙화를 핵심 개념으로 한다. P2P란 서버나 클라이언트 없이 개인 컴퓨터 사이를 연결하는 통신망을 말하며, 연결된 각각의 컴퓨터가 서버이자 클라이언트 역할을 하며 정보를 공유하는 방식이다.Blockchain focuses on the decentralization of the P2P (Peer to Peer) transaction, which breaks away from the existing financial system that secures and manages all transactions in financial institutions. P2P is a communication network connecting personal computers without a server or client, and each connected computer acts as a server and a client and shares information.

블록체인은 중앙 시스템이 운영하는 것이 아닌 분산된 컴퓨팅 자원을 이용하므로 탈중앙화의 특징을 갖는다. 또한 블록체인은 네트워크 상에서 발생하는 모든 거래에 대하여 투명하게 관리할 수 있다. 모든 거래는 거래 발생 시점부터 추적이 가능하고, 누구나 공개된 거래 기록에 접근할 수 있으며 거래의 양성화와 규제 비용을 절감하는 효과를 얻을 수 있다. 또한 블록체인은 위변조가 불가능하다는 특징이 있다. 블록체인은 이전 블록의 정보를 이용하여 블록을 생성한다. 블록은 사슬처럼 모두 연결되어 있는 구조이기 때문에 블록의 특정 거래를 조작하려면 이후에 생성된 모든 블록의 정보도 변경해야 한다. 블록체인 네트워크의 51%를 동시에 해킹하는 일은 사실상 불가능하기 때문에 위변조에 대한 가장 신뢰있는 기술이라고 평가받고 있다. 또한 블록체인은 확장성의 특징을 갖는다. 대부분의 블록체인 기술은 오픈소스 소프트웨어로 높은 확장성을 가지고 있다.Blockchain is decentralized because it uses distributed computing resources rather than a central system. In addition, the blockchain can transparently manage all transactions occurring on the network. All transactions can be tracked from the time of the transaction, anyone has access to public transaction records, and the benefits of cultivating transactions and reducing regulatory costs. In addition, blockchain is characterized by the forgery is impossible. The blockchain creates a block using the information of the previous block. Because blocks are all connected like a chain, manipulating a particular transaction in a block also requires changing the information in all subsequently created blocks. Hacking 51% of blockchain networks simultaneously is virtually impossible, making it the most reliable technology for forgery and alteration. In addition, the blockchain is characterized by scalability. Most blockchain technologies are open source software and are highly scalable.

등록특허공보 제10-1252549호, 2010.05.31Patent Application Publication No. 10-1252549, 2010.05.31

본 발명이 해결하고자 하는 과제는 데이터 보안을 위한 방법 및 시스템을 제공하는 것이다.The problem to be solved by the present invention is to provide a method and system for data security.

본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.Problems to be solved by the present invention are not limited to the above-mentioned problems, and other problems not mentioned will be clearly understood by those skilled in the art from the following description.

상술한 과제를 해결하기 위한 본 발명의 일 면에 따른 데이터 보안 방법은, 서버가, 제1 사용자 단말로부터 제1 데이터를 획득하는 단계; 상기 서버가, 상기 획득된 제1 데이터를 분할하는 단계; 상기 서버가, 상기 분할된 데이터를 기 설정된 방법으로 셔플하는 단계; 상기 서버가, 상기 획득된 제1 데이터 분할에 대한 정보 및 상기 기 설정된 방법에 관한 정보를 포함하는 제2 데이터를 획득하는 단계; 상기 서버가, 상기 분할된 제1 데이터 중 적어도 하나의 제3 데이터 및 상기 제2 데이터를 제1 암호키를 이용하여 암호화 하는 단계; 상기 서버는, 상기 제1 사용자 단말로 상기 암호화된 데이터를 전송하는 단계; 및상기 서버가, 상기 분할된 제1 데이터 중 제3 데이터를 제외한 나머지 분할 데이터를 외부 서버로 전송하는 단계;를 포함한다.According to an aspect of the present invention, there is provided a data security method comprising: obtaining, by a server, first data from a first user terminal; Dividing, by the server, the obtained first data; The server shuffling the divided data in a predetermined method; Acquiring, by the server, second data including information on the obtained first data division and information on the preset method; Encrypting, by the server, at least one third data and the second data of the divided first data using a first encryption key; The server, transmitting the encrypted data to the first user terminal; And transmitting, by the server, the remaining divided data except for the third data among the divided first data to an external server.

이때, 상기 서버는, 상기 제1 데이터를 다운로드하기 위한 요청을 수신하는 단계; 상기 외부 서버가, 상기 요청에 따라, 상기 상기 분할된 제1 데이터 중 제3 데이터를 제외한 나머지 분할 데이터를 상기 서버로 전송 하는 단계; 상기 서버가, 상기 제1 사용자 단말로 상기 적어도 하나의 제3 데이터 및 상기 제2 데이터를 요청하는 단계; 상기 제1 사용자 단말이, 상기 외부 서버의 요청이 유효한 경우, 상기 암호화되어 저장된 데이터를 복호화 하는 단계; 상기 제1 사용자 단말이 상기 복호화된 제2 데이터 및 제3 데이터를 상기 외부 서버로 전송하는 단계; 및 상기 외부 서버는, 상기 제2 데이터를 바탕으로 분할된 제1 데이터를 재구성 하는 단계; 를 포함할 수 있다.At this time, the server, the step of receiving a request for downloading the first data; Transmitting, by the external server, the remaining divided data except for the third data among the divided first data to the server according to the request; Requesting, by the server, the at least one third data and the second data to the first user terminal; Decrypting, by the first user terminal, the encrypted and stored data when the request of the external server is valid; Transmitting, by the first user terminal, the decoded second data and third data to the external server; And reconstructing, by the external server, first data divided based on the second data; It may include.

이때, 상기 분할하는 단계는, 상기 분할된 데이터에 순차적으로 인덱스를 부가하는 단계;를 포함하고, 상기 셔플하는 단계는, 상기 인덱스가 부가된 분할된 데이터를 랜덤하게 셔플하고, 상기 제2 데이터는, 상기 분할된 데이터들의 인덱스 정보를 포함할 수 있다.In this case, the dividing may include adding an index to the divided data sequentially, and the shuffling may randomly shuffle the divided data to which the index is added, and the second data may include: It may include index information of the divided data.

이때, 상기 제1 데이터를 재구성하는 단계는, 상기 제2 데이터에 포함된 인덱스를 바탕으로 분할된 제1 데이터를 재구성할 수 있다.In this case, the reconstructing the first data may reconstruct the divided first data based on the index included in the second data.

이때, 상기 셔플하는 단계는, 상기 분할된 제1 데이터를 기 설정된 알고리즘에 따라 셔플하고, 상기 재구성하는 단계는, 상기 기설정된 알고리즘을 역변환하여 분할된 제1 데이터를 재구성 할 수 있다.In this case, the step of shuffling, shuffles the divided first data according to a preset algorithm, and the reconstructing may reconstruct the divided first data by inversely transforming the preset algorithm.

이때, 상기 제2 데이터 및 상기 제3 데이터는, 서로 다른 암호키에 의해 각각 암호화 될 수 있다.In this case, the second data and the third data may be encrypted by different encryption keys, respectively.

이때, 상기 제1 데이터가 제1 사용자 단말 및 제2 사용자 단말에 의해 공유되는 경우, 상기 서버가, 상기 분할된 제1 데이터 중 적어도 하나의 제4 데이터 및 상기 제4 데이터를 제2 암호키를 이용하여 암호화 하는 단계; 상기 서버는, 상기 제2 사용자 단말로 상기 암호화된 데이터를 전송하는 단계; 를 더 포함할 수 있다.In this case, when the first data is shared by the first user terminal and the second user terminal, the server may convert the second encryption key into at least one fourth data and the fourth data among the divided first data. Encrypting using; The server, transmitting the encrypted data to the second user terminal; It may further include.

이때, 상기 서버는, 상기 제1 데이터를 다운로드하기 위한 요청을 수신하는 단계; 상기 외부 서버가, 상기 요청에 따라, 상기 상기 분할된 제1 데이터 중 제3 데이터 및 상기 제4 데이터를 제외한 나머지 분할 데이터를 상기 서버로 전송 하는 단계; 상기 서버가, 상기 복수의 사용자 단말로, 상기 제2 데이터, 제3 데이터 및 제4 데이터를 요청하는 단계; 상기 제1 사용자 단말 및 상기 제2 사용자 단말이, 상기 서버의 요청이 유효한 경우, 상기 암호화되어 저장된 데이터를 복호화 하는 단계; 상기 제1 사용자 단말 및 상기 제2 사용자 단말이 상기 복호화된 데이터를 상기 서버로 전송하는 단계; 및 상기 서버는, 상기 제2 데이터 및 상기 제1 사용자 단말 및 상기 제2 사용자 단말로부터 수신한 제3 데이터 및 제4 데이터를 바탕으로 분할된 제1 데이터를 재구성 하는 단계; 를 포함할 수 있다.At this time, the server, the step of receiving a request for downloading the first data; Transmitting, by the external server, the remaining divided data except for the third data and the fourth data among the divided first data to the server according to the request; Requesting, by the server, the second data, third data, and fourth data from the plurality of user terminals; Decrypting, by the first user terminal and the second user terminal, the encrypted and stored data when the request of the server is valid; Transmitting the decrypted data to the server by the first user terminal and the second user terminal; And reconstructing, by the server, first data divided based on the second data and the third data and the fourth data received from the first user terminal and the second user terminal. It may include.

이때, 상기 제1 사용자 단말 및 상기 제2 사용자 단말이, 상기 서버의 요청이 유효한 경우, 상기 암호화되어 저장된 데이터를 복호화 하는 단계는, 상기 제1 사용자 단말 및 상기 제2 사용자 단말의 사용자 중 기 설정된 수 이상의 사용자가 복호화에 동의한 경우, 상기 암호화되어 저장된 데이터를 복호화 하는 단계;를 포함할 수 있다.In this case, when the request of the server is valid, the first user terminal and the second user terminal decrypting the encrypted and stored data may be preset among a user of the first user terminal and the second user terminal. If more than one user agrees to decrypt, decrypting the encrypted and stored data; may include.

이때, 상기 제2 데이터, 상기 제3 데이터 및 상기 제4 데이터는 블록체인에 저장될 수 있다.In this case, the second data, the third data and the fourth data may be stored in the blockchain.

상술한 본 개시의 다양한 실시예에 따라, 적은 데이터를 암호화하고도 보안성을 높이고, 데이터 전송 속도를 높일 수 있는 효과가 있다.According to various embodiments of the present disclosure described above, even if a small amount of data is encrypted, security can be improved and data transmission speed can be increased.

본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.Effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.

도 1은 본 발명의 일 실시예에 따른 플랫폼을 개괄적으로 설명하기 위한 예시도이다.
도 2는 본 발명에 따른 시스템을 상세히 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 데이터 보안 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 데이터 재구성 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 데이터를 셔플하는 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 또 다른 실시예에 따른 데이터를 셔플하는 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 복수의 사용자가 제1 데이터를 공유하는 경우의 데이터 보안 방법을 설명하기 위한 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 복수의 사용자가 제1 데이터를 공유하는 경우의 데이터 보안 방법을 설명하기 위한 흐름도이다.
도 9는 일 실시 예에 따른 장치의 구성도이다.
1 is an exemplary view for schematically explaining a platform according to an embodiment of the present invention.
2 is a block diagram for explaining in detail the system according to the present invention.
3 is a flowchart illustrating a data security method according to an embodiment of the present invention.
4 is a flowchart illustrating a data reconstruction method according to an embodiment of the present invention.
5 is a flowchart illustrating a method of shuffling data according to an embodiment of the present invention.
6 is a flowchart illustrating a method of shuffling data according to another embodiment of the present invention.
7 is a flowchart illustrating a data security method when a plurality of users share first data according to an embodiment of the present invention.
8 is a flowchart illustrating a data security method when a plurality of users share first data according to an embodiment of the present invention.
9 is a block diagram of an apparatus according to an embodiment.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. Advantages and features of the present invention and methods for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but can be embodied in various different forms, and the present embodiments only make the disclosure of the present invention complete, and those of ordinary skill in the art to which the present invention belongs. It is provided to fully inform the skilled worker of the scope of the invention, which is defined only by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. In this specification, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, "comprises" and / or "comprising" does not exclude the presence or addition of one or more other components in addition to the mentioned components. Like reference numerals refer to like elements throughout, and "and / or" includes each and all combinations of one or more of the mentioned components. Although "first", "second", etc. are used to describe various components, these components are of course not limited by these terms. These terms are only used to distinguish one component from another. Therefore, of course, the first component mentioned below may be a second component within the technical spirit of the present invention.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms used in the present specification (including technical and scientific terms) may be used in a sense that can be commonly understood by those skilled in the art. In addition, terms that are defined in a commonly used dictionary are not ideally or excessively interpreted unless they are specifically defined clearly.

명세서에서 사용되는 "부" 또는 “모듈”이라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부" 또는 “모듈”은 어떤 역할들을 수행한다. 그렇지만 "부" 또는 “모듈”은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부" 또는 “모듈”은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부" 또는 “모듈”은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부" 또는 “모듈”들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부" 또는 “모듈”들로 결합되거나 추가적인 구성요소들과 "부" 또는 “모듈”들로 더 분리될 수 있다.As used herein, the term "part" or "module" refers to a hardware component such as software, FPGA, or ASIC, and the "part" or "module" plays certain roles. However, "part" or "module" is not meant to be limited to software or hardware. The “unit” or “module” may be configured to be in an addressable storage medium or may be configured to play one or more processors. Thus, as an example, a "part" or "module" may include components such as software components, object-oriented software components, class components, and task components, processes, functions, properties, Procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. Functions provided within components and "parts" or "modules" may be combined into smaller numbers of components and "parts" or "modules" or into additional components and "parts" or "modules". Can be further separated.

공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 구성요소와 다른 구성요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 구성요소들의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들어, 도면에 도시되어 있는 구성요소를 뒤집을 경우, 다른 구성요소의 "아래(below)"또는 "아래(beneath)"로 기술된 구성요소는 다른 구성요소의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 구성요소는 다른 방향으로도 배향될 수 있으며, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.The spatially relative terms " below ", " beneath ", " lower ", " above ", " upper " It can be used to easily describe a component's correlation with other components. Spatially relative terms are to be understood as including terms in different directions of components in use or operation in addition to the directions shown in the figures. For example, when flipping a component shown in the drawing, a component described as "below" or "beneath" of another component may be placed "above" the other component. Can be. Thus, the exemplary term "below" can encompass both an orientation of above and below. Components may be oriented in other directions as well, so spatially relative terms may be interpreted according to orientation.

본 명세서에서, 컴퓨터는 적어도 하나의 프로세서를 포함하는 모든 종류의 하드웨어 장치를 의미하는 것이고, 실시 예에 따라 해당 하드웨어 장치에서 동작하는 소프트웨어적 구성도 포괄하는 의미로서 이해될 수 있다. 예를 들어, 컴퓨터는 스마트폰, 태블릿 PC, 데스크톱, 노트북 및 각 장치에서 구동되는 사용자 클라이언트 및 애플리케이션을 모두 포함하는 의미로서 이해될 수 있으며, 또한 이에 제한되는 것은 아니다.In the present specification, the computer refers to any kind of hardware device including at least one processor, and according to an embodiment, it may be understood as a meaning encompassing a software configuration that operates on the hardware device. For example, a computer may be understood as including, but not limited to, a smartphone, a tablet PC, a desktop, a notebook, and a user client and an application running on each device.

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 명세서에서 설명되는 각 단계들은 컴퓨터에 의하여 수행되는 것으로 설명되나, 각 단계의 주체는 이에 제한되는 것은 아니며, 실시 예에 따라 각 단계들의 적어도 일부가 서로 다른 장치에서 수행될 수도 있다.Each step described herein is described as being performed by a computer, but the subject of each step is not limited thereto, and at least some of the steps may be performed by different devices according to embodiments.

도 1은 본 발명의 일 실시예에 따른 플랫폼을 개괄적으로 설명하기 위한 예시도이다.1 is an exemplary view for schematically explaining a platform according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 플랫폼은 의뢰인과 작업자를 연결해주며, 중간에서 다양한 서비스를 제공할 수 있다. 일 실시예로, 플랫폼은 의뢰자로부터 데이터 작업에 관한 의뢰를 받고, 해당 의뢰에 대응되는 작업자를 매칭하여 작업자에게 의뢰자의 데이터 작업을 할당할 수 있다. 데이터 작업 할당 과정에서 플랫폼은 인공 지능 모델을 이용하여 작업자에게 최적화된 UX/UI 툴을 제공할 수 있다. As shown in Figure 1, the platform connects the client and the worker, it can provide a variety of services in the middle. In one embodiment, the platform may receive a request for a data task from the requester, and match the worker corresponding to the request to allocate the client's data task to the worker. During data task assignment, the platform can use artificial intelligence models to provide workers with optimized UX / UI tools.

또 다른 실시예로, 플랫폼은 의뢰자와 작업자 사이에서 전송되는 데이터의 보안성을 높이기 위한 시스템을 구축할 수 있다. 예를 들어, 플랫폼은 의뢰자가 제공한 데이터를 암호화하여 작업자에게 제공하고, 작업자에 의해 생성된 작업물을 암호화하여 의뢰자에게 제공할 수 있다.In another embodiment, the platform may build a system to increase the security of data transmitted between the client and the worker. For example, the platform may encrypt and provide data provided by the client to the worker, and encrypt the work generated by the worker to provide the client.

이 외에도, 플랫폼은 인공 지능 모델을 이용하여 작업자에 의해 생성된 작업물을 검수하여 작업자에게 재작업을 요청하거나, 의뢰자에게 전달할 수 있다.In addition, the platform may use the artificial intelligence model to inspect the work generated by the worker, request the worker to rework, or deliver it to the client.

도 2는 본 발명에 따른 시스템을 상세히 설명하기 위한 블록도이다.2 is a block diagram for explaining in detail the system according to the present invention.

도 2에 개시된 바와 같이, 시스템(1)은 제1 사용자 단말 내지 제6 사용자 단말(11 내지 16), 서버(20) 및 외부 서버(21)를 포함할 수 있다. 이때, 제1 사용자 단말 내지 제6 사용자 단말(11 내지 16)의 적어도 하나의 단말은 도 1에 개시된 의뢰자에 대응되는 단말이고, 또 다른 적어도 하나의 단말은 도 1에 개시된 판매자에 대응되는 단말일 수 있다. 또한, 서버(20)는 도 1에 개시된 플랫폼에 대응되는 서버일 수 있다. 설명의 편의를 위해 본 개시에서는 제1 사용자 단말 내지 제3 사용자 단말(11 내지 13)은 의뢰자에 대응되는 사용자 단말로, 제4 사용자 단말 내지 제6 사용자 단말(14 내지 16)은 판매자에 대응되는 사용자 단말로 보나, 이에 한정되는 것은 아니다.As disclosed in FIG. 2, the system 1 may include first to sixth user terminals 11 to 16, a server 20, and an external server 21. In this case, at least one terminal of the first to sixth user terminals 11 to 16 is a terminal corresponding to the client disclosed in FIG. 1, and another at least one terminal is a terminal corresponding to the seller disclosed in FIG. 1. Can be. In addition, the server 20 may be a server corresponding to the platform disclosed in FIG. 1. For convenience of description, in the present disclosure, the first to third user terminals 11 to 13 are user terminals corresponding to the client, and the fourth to sixth user terminals 14 to 16 correspond to the seller. It is seen as a user terminal, but is not limited thereto.

이때, 제1 사용자 단말(11)은 데이터를 서버(20)로 전송할 수 있다. 서버(20)는 분할된 데이터를 셔플하고, 분할된 데이터에 대한 정보 및 셔플에 대한 정보를 저장한 작은 데이터 크기를 가지는 파일을 만들 수 있다. 서버(20)는 해당 파일을 암호화 하여 제1 사용자 단말(11)로 전송할 수 있으며, 제1 사용자 단말(11)은 작은 데이터 크기를 가지는 파일만으로 전체 데이터를 보안할 수 있는 효과가 존재한다. In this case, the first user terminal 11 may transmit data to the server 20. The server 20 may shuffle the divided data and create a file having a small data size storing information about the divided data and information about the shuffle. The server 20 may encrypt the file and transmit the encrypted file to the first user terminal 11, and the first user terminal 11 may secure the entire data using only a file having a small data size.

한편, 서버(20)는 분할된 데이터 중 사용자 단말로 제공된 분할 데이터를 제외한 나머지 데이터를 외부 서버(21)로 전송할 수 있다. 이때, 외부 서버(21)가 수신한 데이터는 무작위로 섞인 데이터로 원본 데이터를 유추하기 어려운 특징이 있다. 따라서, 공격자가 외부 서버(21)에 저장된 데이터를 해킹하더라도, 제1 사용자 단말(11)이 전송한 원본 데이터에 대한 정보를 알 수 없어 원본 데이터를 보호할 수 있다. 또한, 공격자가 제1 사용자 단말(11)에 저장된 암호화된 데이터를 해킹하더라도, 암호화된 데이터를 복호화 하지 못하거나, 외부 서버(21)에 저장된 분할 데이터가 없다면 원본 데이터를 획득할 수 없다.Meanwhile, the server 20 may transmit the remaining data except the divided data provided to the user terminal among the divided data to the external server 21. At this time, the data received by the external server 21 has a characteristic that it is difficult to infer the original data as randomly mixed data. Therefore, even if the attacker hacks the data stored in the external server 21, it is not possible to know the information about the original data transmitted by the first user terminal 11 can protect the original data. In addition, even if the attacker hacks the encrypted data stored in the first user terminal 11, the original data cannot be obtained if the encrypted data cannot be decrypted or if there is no divided data stored in the external server 21.

한편, 본 발명에 따른 시스템(1)에서, 서버(20) 및 외부 서버(21)는 하나의 서버로 구현될 수 있음은 물론이다.Meanwhile, in the system 1 according to the present invention, the server 20 and the external server 21 may be implemented as one server.

도 3은 본 발명의 일 실시예에 따른 데이터 보안 방법을 설명하기 위한 흐름도이다.3 is a flowchart illustrating a data security method according to an embodiment of the present invention.

단계 S105에서, 서버(20)는 제1 데이터를 획득할 수 있다. 이때 제1 데이터는 제1 사용자 단말(11)로부터 제공된 데이터일 수 있다. In operation S105, the server 20 may acquire first data. In this case, the first data may be data provided from the first user terminal 11.

단계 S110에서, 서버(20)는 획득한 제1 데이터를 분할할 수 있다. 일 실시예로, 서버(20)는 제1 데이터를 기 설정된 크기 또는 기 설정된 개수로 분할 할 수 있다. 구체적으로, 서버(20)는 제1 데이터를 10개의 분할 데이터로 분할하며, 10개의 분할 데이터의 크기는 모두 동일할 수 있다. 또는, 서버(20)는 제1 데이터를 10개의 분할 데이터로 분할하며, 10개의 분할 데이터의 크기는 각각 상이하게 분할될 수 있다. In operation S110, the server 20 may divide the obtained first data. In one embodiment, the server 20 may divide the first data into a predetermined size or a predetermined number. In detail, the server 20 divides the first data into 10 pieces of divided data, and the sizes of the 10 pieces of divided data may be the same. Alternatively, the server 20 may divide the first data into ten pieces of divided data, and the sizes of the ten pieces of divided data may be divided differently.

또는, 서버(20)는 제1 데이터를 기 설정된 크기(예를 들어(100KB, 또는 10MB 등)로 분할할 수 있다. 이 경우, 제1 데이터의 크기에 따라 분할되는 데이터의 개수가 상이할 것이다. Alternatively, the server 20 may divide the first data into a predetermined size (for example, 100 KB or 10 MB, etc.) In this case, the number of data to be divided will be different according to the size of the first data. .

또는, 서버(20)는 제1 데이터의 일부는 기 설정된 크기로 분할되나 나머지 데이터는 임의의 방식으로 분할될 수도 있다.Alternatively, the server 20 may divide some of the first data into a predetermined size but divide the remaining data in any manner.

단계 S115에서, 서버(20)는 분할된 제1 데이터를 셔플할 수 있다. 이때, 서버(20)는 분할된 제1 데이터를 셔플하는 경우, 셔플에 대한 정보를 획득할 수 있다. 즉, 서버(20)는 셔플된 데이터를 다시 원래대로 재구성 하기 위한 셔플 정보를 획득할 수 있다. 서버(20)는 기 설정된 알고리즘에 따라 분할 데이터를 셔플하거나, 분할된 데이터에 인덱스 정보를 부가하는 방법 등을 이용하여 셔플 정보를 획득할 수 있다. In operation S115, the server 20 may shuffle the divided first data. At this time, when the server 20 shuffles the divided first data, the server 20 may obtain information about the shuffle. That is, the server 20 may obtain shuffle information for reconstructing the shuffled data again. The server 20 may obtain shuffle information by using a method of shuffling divided data or adding index information to the divided data according to a predetermined algorithm.

단계 S120에서, 서버(20)는 분할된 제1 데이터에 대한 분할 정보 및 셔플 정보를 포함하는 제2 데이터를 획득할 수 있다.In operation S120, the server 20 may acquire second data including split information and shuffle information about the divided first data.

분할 정보는 제1 데이터로부터 분할된 데이터임을 표시하는 정보를 포함할 수 있으며, 셔플 정보는 분할된 데이터가 어떻게 셔플되었는지와 관련된 정보를 포함할 수 있다.The split information may include information indicating that the split data is from the first data, and the shuffle information may include information related to how the split data is shuffled.

단계 S125에서, 서버(20)는 제2 데이터 및 분할된 제1 데이터 중 적어도 하나의 제3 데이터를 암호화 할 수 있다.In operation S125, the server 20 may encrypt at least one third data of the second data and the divided first data.

즉, 서버(20)는 제1 데이터 재구성을 위한 제2 데이터를 암호화 하여 복호화 없이 제1 데이터를 재구성 하지 못하게 할 수 있다. 또한, 서버(20)는 제1 데이터의 일부인 제3 데이터를 암호화 하여 다른 사용자가 제2 데이터에 대한 정로를 알고 있다고 하더라고 완전한 제1 데이터를 재구성하지 못하게 할 수 있다. That is, the server 20 may encrypt the second data for reconstructing the first data to prevent reconstruction of the first data without decryption. In addition, the server 20 may encrypt the third data that is part of the first data to prevent another user from reconstructing the complete first data even if another user knows the route to the second data.

한편, 제2 데이터 및 제3 데이터는 서로 다른 암호키를 이용하여 암호화 되거나, 서로 다른 암호화 방법으로 암호화 되어 보안성을 향상시킬 수 있다.Meanwhile, the second data and the third data may be encrypted using different encryption keys or may be encrypted using different encryption methods to improve security.

한편, 상술한 실시예에서는 제2 데이터 및 제3 데이터를 서버(20)가 암호화 하는 것으로 설명하였으나, 이에 한정되는 것은 아니다. 또 다른 실시예로, 서버(20)는 제2 데이터 및 제3 데이터를 제1 사용자 단말(11)로 전송하고, 제1 사용자 단말(11)이 자신의 암호키를 이용하여 제2 데이터 및 제3 데이터를 암호화 할 수 있음은 물론이다. 이하에서는 서버(20)가 데이터 암호화를 수행하는 것으로 설명하나, 다양한 사용자 단말이 해당 과정을 수행할 수 있음은 물론이다.Meanwhile, in the above-described embodiment, the server 20 encrypts the second data and the third data, but the present invention is not limited thereto. In another embodiment, the server 20 transmits the second data and the third data to the first user terminal 11, the first user terminal 11 using the encryption key of the second data and the first 3 Of course you can encrypt your data. Hereinafter, the server 20 will be described as performing data encryption, but various user terminals may perform the corresponding process.

단계 S130에서, 서버(20)는 암호화된 데이터를 제1 사용자 단말(11)로 전송할 수 있다.In operation S130, the server 20 may transmit the encrypted data to the first user terminal 11.

이때, 서버(20)는 제2 데이터 및 제3 데이터를 삭제하여 보안성을 향상시킬 수 있다. 한편, 상술한 바와 같이, 암호화가 제1 사용자 단말(11)에서 수행되는 경우, 단계 S130은 생략될 수 있다.In this case, the server 20 may delete the second data and the third data to improve security. On the other hand, as described above, when encryption is performed in the first user terminal 11, step S130 may be omitted.

한편, 제1 사용자 단말(11)은 암호화된 데이터를 블록 체인에 저장할 수 있다. 데이터를 블록 체인에 저장함으로서, 위변조가 불가능하고, 보안이 향상되는 효과가 존재하며, 후술하는 바와 같이, 복수의 사용자가 제1 데이터를 공유하는 경우 효과적으로 암호화 데이터를 관리할 수 있다. 이에 대한 자세한 사항은 후술한다.Meanwhile, the first user terminal 11 may store encrypted data in the blockchain. By storing data in the blockchain, forgery is impossible and security is improved. As described below, when a plurality of users share the first data, the encrypted data can be managed effectively. Details thereof will be described later.

단계 S135에서, 서버(20)는 분할된 제1 데이터 중 제3 데이터를 제외한 나머지 분할 데이터를 외부 서버(21)로 전송할 수 있다.In operation S135, the server 20 may transmit the remaining divided data except the third data among the divided first data to the external server 21.

즉, 서버(20)는 분할된 제1 데이터 중 제3 데이터를 제외한 나머지 데이터는 상대적으로 보안성이 약한 외부 서버(21)에 저장할 수 있다. 외부 서버(21)가 공격자에 의해 해킹 당하는 경우라도, 1)분할된 데이터를 어떻게 배열 해야되는 지에 대한 정보가 없고, 2)정보가 있더라도 제3 데이터가 존재하지 않으므로 완전한 제1 데이터를 재구성할 수 없을 것이다. 나아가, 상술한 바와 같이, 다양한 방법을 통해 제1 데이터를 분할하여 제3 데이터의 크기를 유동적으로 설정하여, 공격자가 제3 데이터를 유추하기 어렵게 되는 효과가 존재한다.That is, the server 20 may store the remaining data except the third data among the divided first data in the external server 21 having relatively low security. Even if the external server 21 is hacked by an attacker, 1) there is no information on how to arrange the divided data, and 2) the third data does not exist even if the information exists, so that the complete first data can be reconstructed. There will be no. Furthermore, as described above, there is an effect that it is difficult for an attacker to infer the third data by dividing the first data through various methods and flexibly setting the size of the third data.

한편, 단계 S125에서, 및 후술하는 단계 S155에서는 보안성을 더욱 향상시키기 위하여 서버(20)의 시큐어 월드에서 암호화 및 복호화 과정이 수행되고, 나머지 단계는 노멀 월드에서 수행될 수 있다.Meanwhile, in step S125 and in step S155 described later, an encryption and decryption process may be performed in the secure world of the server 20 to further improve security, and the remaining steps may be performed in the normal world.

시큐어 월드란 보안성을 확보한 데이터 처리 아키텍처를 의미하고, 노멀 월드란 일반적인 데이터 처리 아키텍처를 의미하며 두개의 월드는 선택적으로 동작하며 두개의 월드가 동시에 사용될 수는 없다.Secure world refers to a secure data processing architecture. Normal world refers to a general data processing architecture. Two worlds operate selectively and two worlds cannot be used simultaneously.

일 실시예로, 서버(20)는 "ARM 트러스트존 아키텍처(ARM Trustzone Architecture)"가 사용될 수 있다. "ARM 트러스트존 아키텍처(ARM Trustzone Architecture)" 로는 마이크로 프로세스 시스템용의 ARM사(社)의 두 개로 분할된 런타임-아키텍처가 공지되어 있다. 이와 같은 런타임-아키텍처는 두 가지의 런타임 환경을 포함한다. 그 중 하나인 비보안 런타임 환경은, "노멀 존(Normal Zone)" 또는 "노멀 월드(Normal World)"로 지칭될 수 있다. 비보안 런타임 환경은 정상 운영 체제에 의해서 제어될 수 있다. 다른 하나의 런타임 환경인 보안 런타임 환경은 "트러스트 존(Trustzone)" 또는 "트러스티드 월드(TrustedWorld)" 또는 "시큐어 월드(Secure World)로 지칭될 수 있다. 보안 런타임 환경은 안전 운영체제에 의해 제어된다. In one embodiment, server 20 may use " ARM Trustzone Architecture ". The "ARM Trustzone Architecture" is known as ARM-divided runtime architecture for two microprocessor systems. This runtime-architecture includes two runtime environments. One such non-secure runtime environment may be referred to as a "normal zone" or a "normal world". The insecure runtime environment can be controlled by the normal operating system. Another runtime environment, the secure runtime environment, may be referred to as a "Trustzone" or "TrustedWorld" or "Secure World." The secure runtime environment is controlled by a secure operating system. .

여기서, 정상 운영 체제는 예를 들어, 안드로이드, 윈도우 폰, 심비안 등과 같은 통상적인 운영 체제일 수 있으며, 안전 운영 체제는 예를 들어, MOBICORE, RedCastle 등과 같이 기존 운영 체제 내에 보안 기능이 통합된 보안 커널(security kernel)을 삽입한 운영 체제일 수 있다. ARM 트러스트 존에 따르면, 상술한 비보안 런타임 환경 및 보안 런타임 환경은 가상 실행 환경으로 정의될 수 있다.Here, the normal operating system may be a conventional operating system, for example, Android, Windows Phone, Symbian, etc., the safety operating system, for example, a security kernel incorporating security functions within the existing operating system, such as MOBICORE, RedCastle, etc. It may be an operating system in which a (security kernel) is inserted. According to the ARM trust zone, the non-secure runtime environment and the secure runtime environment described above may be defined as virtual execution environments.

도 4는 본 발명의 일 실시예에 따른 데이터 재구성 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating a data reconstruction method according to an embodiment of the present invention.

단계 S140에서, 서버(20)는 제1 데이터 다운로드 요청을 수신할 수 있다. 이때, 서버(20)는 제4 사용자 단말(14)로부터 제1 데이터를 다운로드하기 위한 요청을 수신할 수 있다. 일 실시예로, 제4 사용자 단말(14)가 제1 사용자 단말(11)의 제1 데이터를 이용하여 작업할 작업자 단말인 경우, 서버(20)는 제4 사용자 단말(14)에게 제1 데이터 다운로드 요청을 수신할 수 있다. 또 다른 실시예로, 서버(20)가 여러 작업자 단말 중 제4 작업자 단말(14)이 작업을 수행하기에 적합하다고 판단한 경우, 서버(20) 자체가 제1 데이터 다운로드 요청을 발생시킬 수도 있다. In operation S140, the server 20 may receive a first data download request. In this case, the server 20 may receive a request for downloading the first data from the fourth user terminal 14. In one embodiment, when the fourth user terminal 14 is a worker terminal to work using the first data of the first user terminal 11, the server 20 sends the first data to the fourth user terminal 14. A download request can be received. In another embodiment, when the server 20 determines that the fourth worker terminal 14 is suitable to perform a task among the various worker terminals, the server 20 itself may generate a first data download request.

단계 S145에서, 외부 서버(21)는 분할된 제1 데이터 중 제3 데이터를 제외한 나머지 분할 데이터를 서버(20)로 전송할 수 있다. 다만, 이에 한정되는 것은 아니고, 외부 서버(21)은 분할된 제1 데이터 중 제3 데이터를 제외한 나머지 분할 데이터를 제4 사용자 단말(14)로 직접 전송할 수도 있음은 물론이다.In operation S145, the external server 21 may transmit the remaining divided data except the third data among the divided first data to the server 20. However, the present invention is not limited thereto, and the external server 21 may directly transmit the divided data except for the third data among the divided first data to the fourth user terminal 14.

단계 S150에서, 서버(20)는 제1 사용자 단말(11)로 제2 데이터 및 제3 데이터를 요청할 수 있다. 즉, 제2 데이터 및 제3 데이터가 존재해야 제1 데이터를 재구성하여 복원할 수 있으므로, 서버(20)는 제2 데이터 및 제3 데이터를 제1 사용자 단말(11)로 요청할 수 있다.In operation S150, the server 20 may request the second data and the third data from the first user terminal 11. That is, since the second data and the third data must be present to reconstruct and restore the first data, the server 20 may request the second user and the third data from the first user terminal 11.

단계 S155에서, 요청이 유효한 경우, 제1 사용자 단말(11)은 암호화된 데이터를 복호화 할 수 있다.In step S155, if the request is valid, the first user terminal 11 may decrypt the encrypted data.

이때, 요청이 유효한지 판단하는 방법은 다양할 수 있다. 일 실시예로, 서버(20)로부터 요청을 수신하면, 제1 사용자 단말(11)은 서버(20)로 기 설정된 패스워드 또는 키를 요청할 수 있다. 패스워드 또는 키가 유효한 경우, 제1 사용자 단말(11)은 자신의 키로 암호화된 데이터를 복호화 하여 제2 데이터 및 제3 데이터를 획득할 수 있다.In this case, the method of determining whether the request is valid may vary. In an embodiment, upon receiving a request from the server 20, the first user terminal 11 may request a preset password or key from the server 20. When the password or the key is valid, the first user terminal 11 may obtain the second data and the third data by decrypting the data encrypted with its key.

단계 S160에서, 제1 사용자 단말(11)은 복호화된 제2 데이터 및 제3 데이터를 서버(20)로 전송할 수 있다.In operation S160, the first user terminal 11 may transmit the decrypted second data and the third data to the server 20.

이때, 제2 데이터 및 제3 데이터를 전송하기 위한 통신 채널의 보안이 보장되지 않는 경우, 제1 사용자 단말(11)은 서버(20)와 공유하는 공개키로 제2 데이터 및 제3 데이터를 암호화 하여 전송할 수 있다. 서버(20)는 자신의 비밀키로 암호화된 데이터를 복호화 하여 제2 데이터 및 제3 데이터를 획득할 수 있을 것이다.In this case, when the security of the communication channel for transmitting the second data and the third data is not guaranteed, the first user terminal 11 encrypts the second data and the third data with a public key shared with the server 20. Can transmit The server 20 may obtain the second data and the third data by decrypting the data encrypted with its secret key.

단계 S165에서, 서버(20)는 제2 데이터를 바탕으로 분할된 제1 데이터를 재구성 할 수 있다. 즉, 서버(20)는 제3 데이터를 제1 사용자 단말(11)로부터 수신하고, 나머지 분할된 제1 데이터를 외부 서버(21)로부터 수신하였으므로, 분할된 제1 데이터 전부를 가지고 있다. 또한, 제2 데이터는 분할된 데이터가 어떻게 셔플되었는지에 대한 정보를 가지고 있으므로 서버(20)는 분할된 제1 데이터를 재구성하여 복원할 수 있다.In operation S165, the server 20 may reconstruct the divided first data based on the second data. That is, since the server 20 receives the third data from the first user terminal 11 and receives the remaining divided first data from the external server 21, the server 20 has all of the divided first data. In addition, since the second data has information on how the divided data has been shuffled, the server 20 may reconstruct and restore the divided first data.

추가적으로, 서버(20)는 복원된 제1 데이터를 제4 사용자 단말(14)로 전송할 수 있음은 물론이다.In addition, the server 20 may transmit the restored first data to the fourth user terminal 14.

한편, 본 발명에 따른 또 다른 실시예로, 외부 서버(21)는 제3 데이터를 제외한 분할된 제1 데이터를 저장하고 있으며, 같은 방법으로 다른 복수의 분할된(그러나 불충분한)데이터를 저장하고 있을 수 있다. 이때, 외부 서버(21)는 분할된 제1 데이터와 나머지 분할된 데이터들을 무작위로 보관할 수 있다. 상기 방식으로 데이터를 저장할 경우, 외부 서버(21)는 복수의 분할된 데이터를 구분없이 저장하게 되어 공격자가 분할된 제1 데이터가 무엇인지조자 모르게 만들 수 있다. On the other hand, in another embodiment according to the present invention, the external server 21 stores the divided first data except the third data, and stores the plurality of other divided (but insufficient) data in the same manner. There may be. In this case, the external server 21 may randomly store the divided first data and the remaining divided data. When storing data in the above manner, the external server 21 may store a plurality of divided data without distinction so that the attacker may not know what the divided first data is.

복수의 데이터들 속에서 분할된 제1 데이터를 식별하기 위해, 서버(20)는 분할된 제1 데이터 각각에 임의의 인덱스를 부가할 수 있다. 나아가, 외부 서버(21)에 저장된 모든 분할 데이터는 상이한 인덱스를 가질 수 있음은 물론이다. 부가되는 인덱스는 분할된 제1 데이터 각각마다 모두 상이한 것으로, 분할된 데이터의 인덱스만 가지고는 해당 데이터가 분할된 제1 데이터인지를 알 수 없다. 따라서, 서버(20)는 분할된 제1 데이터의 순서에 따라 부가된 인덱스를 정렬한 테이블에 대한 정보를 분할 정보로 생성할 수 있다. 생성된 분할 정보는 제2 데이터에 포함될 수 있다. 이때, 인덱스는 분할된 데이터의 특정 위치에 삽입될 수 있고, 이러한 위치 정보 또한 분할 정보에 포함될 수 있다. 나아가, 분할 정보는 인덱스의 크기 정보를 더 포함할 수 있다. In order to identify the first data divided among the plurality of data, the server 20 may add an arbitrary index to each of the divided first data. Furthermore, it is a matter of course that all the divided data stored in the external server 21 may have different indices. The added indexes are different for each of the divided first data, and only the index of the divided data does not determine whether the corresponding data is the divided first data. Accordingly, the server 20 may generate, as partition information, information about a table in which the added indexes are sorted according to the order of the divided first data. The generated split information may be included in the second data. In this case, the index may be inserted at a specific position of the divided data, and such position information may also be included in the partition information. Furthermore, the split information may further include size information of the index.

예를 들어, 제1 데이터가 제1-1데이터, 제1-2 데이터, 제1-3 데이터로 분할되는 경우를 가정할 수 있다. 예를 들어, 제1-1 데이터는 0010이고, 제1-2 데이터는 1111, 제1-3 데이터는 0000일 수 있다. 이때, 특정 위치 정보는 예를 들어 '데이터 중 두번째 비트 이후'일 수 있고, 인덱스의 크기는 2비트인 경우를 가정한다. 이때, 제1-1 데이터에 부가되는 인덱스는 00이고, 제1-2 데이터에 부가되는 인덱스는 01이고, 제1-3 데이터에 부가되는 인덱스는 10일 수 있다. For example, it may be assumed that the first data is divided into 1-1 data, 1-2 data, and 1-3 data. For example, the 1-1 data may be 0010, the 1-2 data may be 1111, and the 1-3 data may be 0000. In this case, it is assumed that the specific location information may be 'after the second bit of data', for example, and the size of the index is 2 bits. At this time, the index added to the 1-1 data may be 00, the index added to the 1-2 data may be 01, and the index added to the 1-3 data may be 10.

서버(20)는 인덱스 크기 정보로부터 임의의 인덱스를 생성하고, 위치 정보에 따라 인덱스를 생성할 수 있다. 최종적으로 제1-1 데이터는 00(00)10, 제1-2 데이터는 11(01)11, 제1-3 데이터는 00(10)00이 될 것이다(설명의 편의상 부가된 인덱스는 괄호 처리하였다)The server 20 may generate an arbitrary index from the index size information and generate an index according to the location information. Finally, the 1-1 data will be 00 (00) 10, the 1-2 data will be 11 (01) 11, and the 1-3 data will be 00 (10) 00. Was

서버(20)는 '인덱스는 처음 두비트 이후부터 시작하며, 2비트의 크기를 가진다'라는 정보를 제2 데이터로 저장할 수 있다. 즉, 제2 데이터는 세번째 네번째 비트가 인덱스라는 정보를 가진다. 나아가 제2 데이터는 000110의 데이터를 더 포함할 수 있다. 000110의 첫 두자리는 제1-1 데이터의 인덱스, 다음 두자리는 제1-2 데이터의 인덱스, 마지막 두 자리는 제1-3 데이터의 인덱스이다.The server 20 may store the information 'the index starts after the first two bits and has a size of 2 bits' as the second data. That is, the second data has information that the third and fourth bits are indexes. Furthermore, the second data may further include data of 000110. The first two digits of 000110 are indices of the 1-1 data, the next two digits are indices of the 1-2 data, and the last two digits are indices of the 1-3 data.

서버(20)는 인덱스의 위치 정보를 바탕으로 외부 서버(21)에 존재하는 모든 데이터로부터 인덱스를 추출하고, 추출된 인덱스를 바탕으로 분할된 제1 데이터를 획득할 수 있다. 상술한 설명에서는 인덱스의 크기가 2비트이므로 동일한 인덱스가 복수개 생성될 수 있으나, 이는 설명의 편의를 위한 것일 뿐, 인덱스의 크기가 기 설정된 값 이상으로 커질 경우, 동일한 인덱스의 발생 빈도가 현저히 낮아진다. 한편, 동일한 인덱스를 가지는 분할 데이터가 존재하는 경우라고 하더라도, 외부 서버(21)에 존재하는 분할 데이터는 모두 상이한 인덱스를 가지고 있으므로, 이 경우 분할된 데이터의 크기 정보를 이용하여 동일한 인덱스를 가지는 복수의 데이터 중 분할된 제1 데이터를 찾아낼 수 있다(즉, 분할된 제1 데이터의 크기 정보 또한 제2 데이터에 저장될 수 있다). The server 20 may extract an index from all data existing in the external server 21 based on the location information of the index, and obtain the first data divided based on the extracted index. In the above description, since the size of the index is 2 bits, a plurality of identical indexes may be generated. However, this is for convenience of description only. When the size of the index becomes larger than a preset value, the frequency of occurrence of the same index is significantly lowered. On the other hand, even if there is a case where the fragment data having the same index exists, since all the fragment data existing in the external server 21 has a different index, in this case a plurality of having the same index by using the size information of the divided data The divided first data may be found in the data (that is, size information of the divided first data may also be stored in the second data).

도 5는 본 발명의 일 실시예에 따른 데이터를 셔플하는 방법을 설명하기 위한 흐름도이다.5 is a flowchart illustrating a method of shuffling data according to an embodiment of the present invention.

단계 S210에서, 서버(20)는 분할된 데이터에 순차적으로 인덱스를 부가할 수 있다.In operation S210, the server 20 may sequentially add an index to the divided data.

단계 S220에서, 서버(20)는 인덱스가 부가된 데이터를 랜덤하게 셔플할 수 있다(S220).In operation S220, the server 20 may randomly shuffle the data to which the index is added (operation S220).

상술한 바와 같이, 인덱스는 분할 데이터의 특정 위치에 특정 크기로 삽입될 수 있음은 물론이다. 위치 정보 및 크기 정보가 암호화 되므로, 공격자는 인덱스가 무엇인지 알 수 없다.As described above, the index may be inserted in a specific size at a specific position of the divided data. Since location and size information is encrypted, an attacker cannot know what an index is.

단계 S230에서, 서버(20)는 제2 데이터에 포함된 인덱스를 바탕으로 분할된 제1 데이터를 재구성 할 수 있다.In operation S230, the server 20 may reconstruct the divided first data based on the index included in the second data.

상술한 예에서, 서버(20)가 인덱스 00을 가지는 제1-1 데이터, 인덱스 10을 가지는 제1-3 데이터, 인덱스 01을 가지는 제1-2 데이터를 획득하면 제2 데이터에 포함된 인덱스 정보 000110을 이용하여 제1-1 데이터, 제1-2 데이터, 제1-3 데이터의 순서로 데이터를 정렬하여 복원할 수 있다.In the above-described example, when the server 20 obtains the first-first data having the index 00, the first-third data having the index 10, and the first-second data having the index 01, the index information included in the second data. By using 000110, data may be sorted and restored in the order of 1-1 data, 1-2 data, and 1-3 data.

도 6은 본 발명의 또 다른 실시예에 따른 데이터를 셔플하는 방법을 설명하기 위한 흐름도이다.6 is a flowchart illustrating a method of shuffling data according to another embodiment of the present invention.

단계 S310에서, 서버(20)는 분할된 제1 데이터를 기 설정된 알고리즘에 따라 셔플할 수 있다. 이때, 기 설정된 알고리즘은 예를 들어 분할 후 홀수번째 데이터와 짝수번째 데이터를 섞는 알고리즘이거나, 분할된 데이터 중 0의 개수 또는 1의 개수의 순서에 따라 오름차순 또는 내림차순으로 정렬하는 알고리즘일 수 있다(이 경우, 0 또는 1의 개수가 동일한 경우, 원래의 순서대로 배열할 수 있을 것이다).In operation S310, the server 20 may shuffle the divided first data according to a preset algorithm. In this case, the preset algorithm may be, for example, an algorithm for mixing odd-numbered data and even-numbered data after division, or an algorithm for sorting in ascending or descending order according to the order of the number of zeros or the number of ones of the divided data ( If the number of 0 or 1 is the same, they may be arranged in the original order).

서버(20)는 기 설정된 알고리즘에 대한 정보를 제2 데이터에 포함시켜 제2 데이터를 암호화 할 수 있다. 이 경우, 분할된 제1 데이터(제3 데이터를 제외한)는 셔플된 순서에 따라 외부 서버(21)로 저장될 것이다.The server 20 may encrypt the second data by including information about a predetermined algorithm in the second data. In this case, the divided first data (except the third data) may be stored in the external server 21 in the shuffled order.

단계 S320에서, 서버(20)는 기 설정된 알고리즘을 역변환하여 분할된 제1 데이터를 재구성 할 수 있다.In operation S320, the server 20 may reconstruct the divided first data by inversely converting the preset algorithm.

도 6의 실시예의 경우, 외부 서버(21)는 분할된 제1 데이터를 셔플된 순서에 따라 저장하고 있어야 하므로, 상술한 바와 같이 모든 데이터를 임의로 섞어서 관리하지 못할 것이다.In the case of the embodiment of Fig. 6, since the external server 21 should store the divided first data in the shuffled order, it will not be able to randomly mix and manage all the data as described above.

도 7은 본 발명의 일 실시예에 따른 복수의 사용자가 제1 데이터를 공유하는 경우의 데이터 보안 방법을 설명하기 위한 흐름도이다.7 is a flowchart illustrating a data security method when a plurality of users share first data according to an embodiment of the present invention.

구체적으로, 제1 데이터는 복수의 사용자 단말이 함께 공유하고 있는 데이터일 수 있다. 이 경우, 제1 데이터 다운을 요청하면, 복수의 사용자 전부 또는 기 설정된 인원의 동의가 있어야 제1 데이터를 다운로드 할 수 있어야 할 것이다.In detail, the first data may be data shared by a plurality of user terminals. In this case, when the first data down request is requested, the first data should be downloaded only when the plurality of users or the predetermined number of persons agree.

설명의 편의를 위해, 이하에서는 복수의 사용자 단말을 제1 사용자 단말(11) 및 제2 사용자 단말(12)의 경우로 한정하여 설명하나, 세개 이상의 사용자 단말의 경우에도 본 발명에 따른 사상이 적용될 수 있음은 물론이다.For convenience of explanation, hereinafter, the plurality of user terminals will be described as being limited to the case of the first user terminal 11 and the second user terminal 12, but the idea according to the present invention may be applied to three or more user terminals. Of course it can.

단계 S410에서, 서버(20)는 분할된 제1 데이터 중 제4 데이터를 제2 암호키를 이용해 암호화 할 수 있다.In operation S410, the server 20 may encrypt the fourth data among the divided first data using the second encryption key.

즉, 서버(20)는 제1 사용자 단말의 경우와 마찬가지로, 분할된 제1 데이터 중 적어도 하나인 제4 데이터와 분할 정보 및 셔플 정보를 포함하는 제2 데이터를 암호화 할 수 있다. 이때, 분할 정보 및 셔플 정보를 포함하는 제2 데이터는 제1 사용자 단말(11)로 제공되는 제2 데이터와 동일할 수 있으나, 이에 한정되는 것은 아니다.That is, as in the case of the first user terminal, the server 20 may encrypt the fourth data, which is at least one of the divided first data, and the second data including the partition information and the shuffle information. In this case, the second data including the split information and the shuffle information may be the same as the second data provided to the first user terminal 11, but is not limited thereto.

일 실시예로, 제1 사용자 단말 및 제2 사용자 단말(12)은 분할 정보 및 셔플 정보를 포함하는 제2 데이터를 분할하여 획득할 수 있고, 각기 자신의 데이터만을 암호화 할 수 있다. 구체적으로, 제2 데이터가 제2-1 데이터 및 제2-2 데이터로 분할되고, 제1 사용자 단말(11)은 제2-1 데이터 및 제3 데이터를 암호화 하고, 제2 사용자 단말(12)는 제2-2 데이터 및 제4 데이터를 암호화 할 수 있다. 이때, 제2-1 데이터 및 제2-2 데이터는 중복되는 부분이 있을 수 있으나, 이에 한정되는 것은 아니다. 또한, 제2-1 데이터 및 제2-2 데이터는 제1 사용자 단말(11)의 제1 데이터에 대한 지분율과 제2 사용자 단말(12)의 제2 데이터에 대한 지분율에 따라 결정될 수도 있음은 물론이다. 즉, 제2 데이터에 대한 더 적은 데이터를 가지고 있을수록 (해킹 등의 방법에 의해서) 제1 데이터를 재구성하는 것이 더 어려워 질 것이므로, 지분율에 따라 제2 데이터를 분할 할 수도 있다. 또는, 제2-1 데이터는 제2 데이터 중 분할 정보를 포함하고, 제2-2 데이터는 제2 데이터 중 셔플 정보를 포함할 수도 있다.In an exemplary embodiment, the first user terminal and the second user terminal 12 may obtain and divide second data including split information and shuffle information, and encrypt only their own data. Specifically, the second data is divided into 2-1 data and 2-2 data, the first user terminal 11 encrypts the 2-1 data and the third data, and the second user terminal 12 The second-2 data and the fourth data may be encrypted. In this case, the 2-1 data and the 2-2 data may have overlapping portions, but the present invention is not limited thereto. In addition, the 2-1 data and the 2-2 data may be determined according to the share ratio of the first data of the first user terminal 11 and the share ratio of the second data of the second user terminal 12. to be. In other words, the smaller the data for the second data, the more difficult it is to reconstruct the first data (by a hacking method or the like), so that the second data may be divided according to the stake ratio. Alternatively, the 2-1 data may include split information of the second data, and the 2-2 data may include shuffle information of the second data.

한편, 제1 데이터를 공유하는 사용자 단말이 복수개일 경우, 복수의 사용자 단말 중 특정 사용자 단말만 제2 데이터에 대한 정보를 수신할 수도 있다. 예를 들어, 제1 데이터를 공유하는 사용자 단말이 세개이고, 이중 두개의 단말만이 제2 데이터에 대한 암호화 데이터를 수신할 수 있다. 나머지 하나의 사용자 단말은 분할된 제1 데이터 중 적어도 하나의 분할 데이터만을 가지고 있을 수 있다.Meanwhile, when a plurality of user terminals share the first data, only a specific user terminal among the plurality of user terminals may receive information on the second data. For example, there are three user terminals sharing the first data, and only two terminals can receive encrypted data for the second data. The other user terminal may have only at least one piece of divided data among the divided first data.

단계 S420에서, 서버(20)는 암호화된 데이터를 제2 사용자 단말(12)로 전송할 수 있다.In operation S420, the server 20 may transmit the encrypted data to the second user terminal 12.

한편, 암호화 데이터를 복수의 사용자 단말이 공유하는 경우, 각각의 사용자 단말이 가지고 있는 암호화된 데이터는 블록체인에 저장될 수 있다. 각각의 사용자 단말은 블록체인 네트워크를 구성하는 복수의 노드 중 하나일 수 있으며, 암호화된 데이터는 블록체인의 트랜잭션 상에 기록되어 복수의 사용자 단말에서의 데이터 위조 및 변조를 방지할 수 있다. 이를 위해 각각의 노드는 블록 생성부를 포함할 수 있으며, 블록 생성부를 통해 블록체인에 저장된 데이터를 관리할 수 있다.On the other hand, when the encrypted data is shared by a plurality of user terminals, the encrypted data each user terminal may be stored in the blockchain. Each user terminal may be one of a plurality of nodes constituting the blockchain network, and the encrypted data may be recorded on a transaction of the blockchain to prevent data forgery and modulation in the plurality of user terminals. To this end, each node may include a block generator and manage data stored in the blockchain through the block generator.

이때, 블록 생성부는 암호화된 데이터뿐만 아니라, 암호화된 데이터를 복호화 하여 서버(20)로 전송하기 위한 규약을 더 포함하여 블록 체인에 저장할 수 있다. 예를 들어, 특정 데이터를 가지고 있는 사용자 단말로부터 제2 데이터 및 제3 데이터를 요청받으면, 블록 생성부에 의해 블록 체인에 저장된 규약에 따라 복호화된 제2 데이터 및 제3 데이터를 서버(20)로 전송할 수 있다. 이때, 특정 데이터란 제1 데이터를 공유하는 사용자 단말들이 복호화를 위해 생성한 임의의 단말이고, 특정 데이터를 가지고 있는 사용자 단말이란, 제1 데이터를 공유하는 사용자 단말들로부터 특정 데이터를 수신한 단말(예를 들어 제4 사용자 단말(14))일 수 있다.In this case, the block generation unit may further include a protocol for decrypting the encrypted data as well as the encrypted data and transmitting the decrypted data to the server 20 and storing the encrypted data in the block chain. For example, when the second data and the third data are requested from the user terminal having the specific data, the server 20 sends the second data and the third data decrypted according to the protocol stored in the block chain by the block generator. Can transmit In this case, the specific data is an arbitrary terminal generated for decoding by the user terminals sharing the first data, and the user terminal having the specific data is a terminal that receives the specific data from the user terminals sharing the first data ( For example, it may be the fourth user terminal 14).

도 8은 본 발명의 일 실시예에 따른 복수의 사용자가 제1 데이터를 공유하는 경우의 데이터 보안 방법을 설명하기 위한 흐름도이다.8 is a flowchart illustrating a data security method when a plurality of users share first data according to an embodiment of the present invention.

단계 S430에서, 서버(20)는 제1 데이터 다운로드 요청을 수신할 수 있다.In operation S430, the server 20 may receive a first data download request.

이때, 서버(20)는 제4 사용자 단말(14)로부터 제1 데이터를 다운로드하기 위한 요청을 수신할 수 있다. 일 실시예로, 제4 사용자 단말(14)가 제1 사용자 단말(11) 및 제2 사용자 단말(12)의 제1 데이터를 이용하여 작업할 작업자 단말인 경우, 서버(20)는 제4 사용자 단말(14)에게 제1 데이터 다운로드 요청을 수신할 수 있다. 또 다른 실시예로, 서버(20)가 여러 작업자 단말 중 제4 작업자 단말(14)이 작업을 수행하기에 적합하다고 판단한 경우, 서버(20) 자체가 제1 데이터 다운로드 요청을 발생시킬 수도 있다.In this case, the server 20 may receive a request for downloading the first data from the fourth user terminal 14. In one embodiment, when the fourth user terminal 14 is a worker terminal to work using the first data of the first user terminal 11 and the second user terminal 12, the server 20 is a fourth user The terminal 14 may receive a first data download request. In another embodiment, when the server 20 determines that the fourth worker terminal 14 is suitable to perform a task among the various worker terminals, the server 20 itself may generate a first data download request.

단계 S440에서, 서버(20)는 분할된 제1 데이터 중 제3 데이터 및 제4 데이터를 제외한 나머지 분할 데이터를 다운로드 할 수 있다In operation S440, the server 20 may download remaining divided data except for the third data and the fourth data among the divided first data.

다만, 이에 한정되는 것은 아니고, 외부 서버(21)은 분할된 제1 데이터 중 제3 데이터를 제외한 나머지 분할 데이터를 제4 사용자 단말(14)로 직접 전송할 수도 있음은 물론이다.However, the present invention is not limited thereto, and the external server 21 may directly transmit the divided data except for the third data among the divided first data to the fourth user terminal 14.

단계 S450에서, 서버(20)는 제1 사용자 단말(11) 및 제2 사용자 단말(12)에게 각각 제2 데이터, 제3 데이터 및 제4 데이터를 요청할 수 있다.In operation S450, the server 20 may request second data, third data, and fourth data from the first user terminal 11 and the second user terminal 12, respectively.

단계 S460에서, 요청이 유효한 경우, 제1 사용자 단말(11) 및 제2 사용자 단말(12)은 암호화된 데이터를 복호화 할 수 있다.In operation S460, when the request is valid, the first user terminal 11 and the second user terminal 12 may decrypt the encrypted data.

단계 S470에서, 제1 사용자 단말(11) 및 제2 사용자 단말(12)은 서버(20)로 암호화된 데이터를 전송할 수 있다. In operation S470, the first user terminal 11 and the second user terminal 12 may transmit encrypted data to the server 20.

단계 S480에서, 서버(20)는 수신한 제2 데이터 및 분할 데이터를 바탕으로 분할된 제1 데이터를 재구성 할 수 있다.In operation S480, the server 20 may reconstruct the divided first data based on the received second data and the divided data.

이 경우, 제1 사용자 단말(11) 또는 제2 사용자 단말 중 어느 하나의 단말로부터 암호화된 데이터를 수신하지 못하면, 제1 데이터 재구성이 불가능하므로, 공유된 제1 데이터를 더욱 안전하게 관리할 수 있다.In this case, if the encrypted data is not received from any one of the first user terminal 11 or the second user terminal, since the first data reconstruction is impossible, the shared first data may be more safely managed.

한편, 상술한 실시예에서는 서버(20)가 제1 데이터를 분할하고, 제2 데이터 및 제3 데이터를 암호화 하는 것으로 설명하였으나, 이에 한정되는 것은 아니다. 즉, 상술한 서버(20)의 동작은 제1 사용자 단말(11)에서 수행될 수 있음은 물론이다.In the above-described embodiment, the server 20 divides the first data and encrypts the second data and the third data, but the present invention is not limited thereto. In other words, the above-described operation of the server 20 may be performed by the first user terminal 11.

일 실시예로, 제1 사용자 단말(11)은 제1 데이터를 분할하고, 분할 정보 및 셔플 정보를 포함하는 제2 데이터를 생성할 수 있다. 제1 사용자 단말(11)은 서버(20)로 제3 데이터를 제외한 나머지 분할 데이터를 전송하고, 제2 데이터 및 제3 데이터를 암호화 할 수 있다. In an embodiment, the first user terminal 11 may divide the first data and generate second data including the split information and the shuffle information. The first user terminal 11 may transmit the remaining divided data except for the third data to the server 20 and encrypt the second data and the third data.

제1 다운로드 요청을 서버(20)로부터 수신하면, 제1 사용자 단말은 요청의 유효성을 확인하고, 유효한 경우, 암호화된 데이터를 복호화 하여 획득한 제2 데이터 및 제3 데이터를 서버(20)로 전송할 수 있다.When the first download request is received from the server 20, the first user terminal verifies the validity of the request and, if valid, transmits the second data and the third data obtained by decrypting the encrypted data to the server 20. Can be.

서버(20)는 외부 서버(21)로부터 수신한 분할 데이터 및 제1 사용자 단말(11)로부터 수신한 제2 데이터 및 제3 데이터를 바탕으로 제1 데이터를 재구성 할 수 있다. The server 20 may reconstruct the first data based on the split data received from the external server 21 and the second data and the third data received from the first user terminal 11.

도 9는 일 실시 예에 따른 장치의 구성도이다.9 is a block diagram of an apparatus according to an embodiment.

프로세서(102)는 하나 이상의 코어(core, 미도시) 및 그래픽 처리부(미도시) 및/또는 다른 구성 요소와 신호를 송수신하는 연결 통로(예를 들어, 버스(bus) 등)를 포함할 수 있다.The processor 102 may include a connection passage (eg, a bus, etc.) that transmits and receives signals with one or more cores (not shown) and graphics processor (not shown) and / or other components. .

한편, 프로세서(102)는 프로세서(102) 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory, 미도시) 및 롬(ROM: Read-Only Memory, 미도시)을 더 포함할 수 있다. 또한, 프로세서(102)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다. Meanwhile, the processor 102 may include random access memory (RAM) and read-only memory (ROM) for temporarily and / or permanently storing a signal (or data) processed in the processor 102. , Not shown) may be further included. In addition, the processor 102 may be implemented in the form of a system on chip (SoC) including at least one of a graphic processor, a RAM, and a ROM.

메모리(104)에는 프로세서(102)의 처리 및 제어를 위한 프로그램들(하나 이상의 인스트럭션들)을 저장할 수 있다. 메모리(104)에 저장된 프로그램들은 기능에 따라 복수 개의 모듈들로 구분될 수 있다.The memory 104 may store programs (one or more instructions) for processing and controlling the processor 102. Programs stored in the memory 104 may be divided into a plurality of modules according to functions.

본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.The steps of a method or algorithm described in connection with an embodiment of the present invention may be implemented directly in hardware, in a software module executed by hardware, or by a combination thereof. The software module may include random access memory (RAM), read only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, hard disk, removable disk, CD-ROM, or It may reside in any form of computer readable recording medium well known in the art.

본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 애플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.The components of the present invention may be embodied as a program (or an application) and stored in a medium for execution in combination with a computer which is hardware. The components of the present invention may be implemented as software programming or software elements, and likewise, embodiments may include various algorithms implemented in combinations of data structures, processes, routines or other programming constructs, such as C, C ++. It may be implemented in a programming or scripting language such as Java, an assembler, or the like. The functional aspects may be implemented with an algorithm running on one or more processors.

이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다. In the above, embodiments of the present invention have been described with reference to the accompanying drawings, but those skilled in the art to which the present invention pertains may implement the present invention in other specific forms without changing the technical spirit or essential features. I can understand that. Therefore, it should be understood that the embodiments described above are exemplary in all respects and not restrictive.

11: 제1 사용자 단말
12: 제2 사용자 단말
13: 제3 사용자 단말
14: 제4 사용자 단말
15: 제5 사용자 단말
16: 제6 사용자 단말
20: 서버
21: 외부 서버
11: first user terminal
12: second user terminal
13: third user terminal
14: fourth user terminal
15: fifth user terminal
16: sixth user terminal
20: server
21: External server

Claims (12)

데이터 보안 방법에 있어서,
서버가, 제1 사용자 단말로부터 제1 데이터를 획득하는 단계;
상기 서버가, 상기 획득된 제1 데이터를 분할하는 단계;
상기 서버가, 상기 분할된 데이터를 기 설정된 방법으로 셔플하는 단계;
상기 서버가, 상기 획득된 제1 데이터 분할에 대한 정보 및 상기 기 설정된 방법에 관한 정보를 포함하는 제2 데이터를 획득하는 단계;
상기 서버가, 상기 분할된 제1 데이터 중 적어도 하나의 제3 데이터 및 상기 제2 데이터를 제1 암호키를 이용하여 암호화 하는 단계;
상기 서버는, 상기 제1 사용자 단말로 상기 암호화된 데이터를 전송하는 단계;
상기 서버가, 상기 서버에 저장된 상기 제2 데이터 및 상기 적어도 하나의 제3 데이터를 삭제하는 단계; 및
상기 서버가, 상기 분할된 제1 데이터 중 제3 데이터를 제외한 나머지 분할 데이터를 외부 서버로 전송하는 단계; 를 포함하고,
상기 서버는, 상기 제1 데이터를 다운로드하기 위한 요청을 수신하는 단계;
상기 외부 서버가, 상기 요청에 따라, 상기 분할된 제1 데이터 중 제3 데이터를 제외한 나머지 분할 데이터를 상기 서버로 전송 하는 단계;
상기 서버가, 상기 제1 사용자 단말로 상기 적어도 하나의 제3 데이터 및 상기 제2 데이터를 요청하는 단계;
상기 제1 사용자 단말이, 상기 외부 서버의 요청이 유효한 경우, 상기 암호화되어 저장된 데이터를 복호화 하는 단계;
상기 제1 사용자 단말이 상기 복호화된 제2 데이터 및 제3 데이터를 상기 외부 서버로 전송하는 단계; 및
상기 외부 서버는, 상기 제2 데이터를 바탕으로 분할된 제1 데이터를 재구성 하는 단계; 를 포함하고,
상기 분할하는 단계는,
상기 분할된 제1 데이터에 순차적으로 인덱스를 부가하되, 상기 분할된 제1 데이터 각각의 기 설정된 위치에 상기 인덱스가 부가되는 단계; 를 포함하고,
상기 셔플하는 단계는,
상기 인덱스가 부가된 분할된 데이터를 랜덤하게 셔플하고,
상기 제2 데이터는, 상기 분할된 제1 데이터들의 인덱스 정보를 포함하고,
상기 인덱스 정보는 상기 분할된 제1 데이터의 순서에 따라 부가된 인덱스를 정렬한 테이블 정보, 상기 분할된 제1 데이터 각각의 기 설정된 위치에 부가되기 위한 위치 정보 및 인덱스의 크기 정보를 포함하고,
상기 제2 데이터를 바탕으로 분할된 제1 데이터를 재구성 하는 단계는,
상기 위치 정보를 바탕으로, 상기 분할된 제1 데이터 각각으로부터 인덱스를 추출하는 단계;
상기 추출된 인덱스 및 상기 테이블 정보를 바탕으로 상기 분할된 제1 데이터를 재구성 하는 단계; 를 포함하고,
상기 제1 암호키를 이용하여 암호화 하는 단계는,
ARM 트러스트존 아키텍쳐의 보안 런타임 환경인 시큐어 월드 환경에서 암호화되는 것을 특징으로 하는 데이터 보안 방법.
In the data security method,
Acquiring, by the server, first data from the first user terminal;
Dividing, by the server, the obtained first data;
The server shuffling the divided data in a predetermined method;
Acquiring, by the server, second data including information on the obtained first data division and information on the preset method;
Encrypting, by the server, at least one third data and the second data of the divided first data using a first encryption key;
The server, transmitting the encrypted data to the first user terminal;
Deleting, by the server, the second data and the at least one third data stored in the server; And
Transmitting, by the server, the remaining divided data except for the third data among the divided first data to an external server; Including,
The server, receiving a request to download the first data;
Transmitting, by the external server, the remaining divided data except for the third data among the divided first data to the server according to the request;
Requesting, by the server, the at least one third data and the second data to the first user terminal;
Decrypting, by the first user terminal, the encrypted and stored data when the request of the external server is valid;
Transmitting, by the first user terminal, the decoded second data and third data to the external server; And
Reconstructing, by the external server, first data divided based on the second data; Including,
The dividing step,
Sequentially adding an index to the divided first data, and adding the index to a predetermined position of each of the divided first data; Including,
The shuffling step,
Randomly shuffles the divided data to which the index is added,
The second data includes index information of the divided first data,
The index information includes table information in which the added indexes are arranged according to the order of the divided first data, position information to be added to a predetermined position of each of the divided first data, and size information of the index.
Reconstructing the divided first data based on the second data,
Extracting an index from each of the divided first data based on the position information;
Reconstructing the partitioned first data based on the extracted index and the table information; Including,
Encrypting using the first encryption key,
A data security method characterized by being encrypted in a secure world environment, which is a secure runtime environment of the ARM TrustZone architecture.
삭제delete 삭제delete 삭제delete ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈Claim 5 was abandoned upon payment of a set-up fee. 제1항에 있어서,
상기 셔플하는 단계는,
상기 분할된 제1 데이터를 기 설정된 알고리즘에 따라 셔플하고,
상기 재구성하는 단계는,
상기 기 설정된 알고리즘을 역변환하여 분할된 제1 데이터를 재구성 하는 것을 특징으로 하는 데이터 보안 방법.
The method of claim 1,
The shuffling step,
Shuffle the divided first data according to a preset algorithm,
The reconstructing step,
And reconstructing the divided first data by inversely transforming the preset algorithm.
◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈Claim 6 has been abandoned upon payment of a setup registration fee. 제1항에 있어서,
상기 제2 데이터 및 상기 제3 데이터는, 서로 다른 암호키에 의해 각각 암호화 되는 것을 특징으로 하는 데이터 보안 방법.
The method of claim 1,
And the second data and the third data are encrypted with different encryption keys, respectively.
◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈Claim 7 was abandoned upon payment of a set-up fee. 제1항에 있어서,
상기 제1 데이터가 제1 사용자 단말 및 제2 사용자 단말에 의해 공유되는 경우,
상기 서버가, 상기 분할된 제1 데이터 중 적어도 하나의 제4 데이터 및 상기 제2 데이터를 제2 암호키를 이용하여 암호화 하는 단계;
상기 서버는, 상기 제2 사용자 단말로 상기 암호화된 데이터를 전송하는 단계; 를 더 포함하는 것을 특징으로 하는 데이터 보안 방법.
The method of claim 1,
When the first data is shared by the first user terminal and the second user terminal,
Encrypting, by the server, at least one fourth data and the second data of the divided first data using a second encryption key;
The server, transmitting the encrypted data to the second user terminal; Data security method further comprises.
◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈Claim 8 has been abandoned upon payment of a set-up fee. 제7항에 있어서,
상기 서버는, 상기 제1 데이터를 다운로드하기 위한 요청을 수신하는 단계;
상기 외부 서버가, 상기 요청에 따라, 상기 분할된 제1 데이터 중 상기 제3 데이터 및 상기 제4 데이터를 제외한 나머지 분할 데이터를 상기 서버로 전송 하는 단계;
상기 서버가, 상기 제1 사용자 단말 및 상기 제2 사용자 단말로, 상기 제2 데이터, 제3 데이터 및 제4 데이터를 요청하는 단계;
상기 제1 사용자 단말 및 상기 제2 사용자 단말이, 상기 서버의 요청이 유효한 경우, 상기 암호화되어 저장된 데이터를 복호화 하는 단계;
상기 제1 사용자 단말 및 상기 제2 사용자 단말이 상기 복호화된 데이터를 상기 서버로 전송하는 단계; 및
상기 서버는, 상기 제2 데이터 및 상기 제1 사용자 단말 및 상기 제2 사용자 단말로부터 수신한 제3 데이터 및 제4 데이터를 바탕으로 분할된 제1 데이터를 재구성 하는 단계; 를 포함하는 데이터 보안 방법.
The method of claim 7, wherein
The server, receiving a request to download the first data;
Transmitting, by the external server, the divided data other than the third data and the fourth data among the divided first data to the server according to the request;
Requesting, by the server, the second data, third data, and fourth data from the first user terminal and the second user terminal;
Decrypting, by the first user terminal and the second user terminal, the encrypted and stored data when the request of the server is valid;
Transmitting the decrypted data to the server by the first user terminal and the second user terminal; And
The server may further include reconstructing the divided first data based on the second data and the third data and the fourth data received from the first user terminal and the second user terminal; Data security method comprising a.
◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈Claim 9 was abandoned upon payment of a set-up fee. 제8항에 있어서,
상기 제1 사용자 단말 및 상기 제2 사용자 단말이, 상기 서버의 요청이 유효한 경우, 상기 암호화되어 저장된 데이터를 복호화 하는 단계는,
상기 제1 사용자 단말 및 상기 제2 사용자 단말의 사용자 중 기 설정된 수 이상의 사용자가 복호화에 동의한 경우, 상기 암호화되어 저장된 데이터를 복호화 하는 단계;를 포함하는 데이터 보안 방법.
The method of claim 8,
The first user terminal and the second user terminal, if the request of the server is valid, decrypting the encrypted stored data,
Decrypting the encrypted and stored data when more than a predetermined number of users of the first user terminal and the second user terminal agree to decrypt.
◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈Claim 10 has been abandoned upon payment of a setup registration fee. 제9항에 있어서,
상기 제2 데이터, 상기 제3 데이터 및 상기 제4 데이터는 블록체인에 저장되는 것을 특징으로 하는 데이터 보안 방법.
The method of claim 9,
And the second data, the third data and the fourth data are stored in a blockchain.
하나 이상의 인스트럭션을 저장하는 메모리; 및
상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고,
상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
제1 항의 방법을 수행하는, 장치.
Memory for storing one or more instructions; And
A processor for executing the one or more instructions stored in the memory;
The processor executes the one or more instructions,
An apparatus for carrying out the method of claim 1.
하드웨어인 컴퓨터와 결합되어, 제1 항의 방법을 수행할 수 있도록 컴퓨터에서 독출가능한 기록매체에 저장된 컴퓨터프로그램.A computer program, coupled to a computer, which is hardware, stored on a recording medium readable by a computer to perform the method of claim 1.
KR1020190015227A 2019-02-08 2019-02-08 Data security methods and systems KR102023038B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190015227A KR102023038B1 (en) 2019-02-08 2019-02-08 Data security methods and systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190015227A KR102023038B1 (en) 2019-02-08 2019-02-08 Data security methods and systems

Related Child Applications (8)

Application Number Title Priority Date Filing Date
KR1020190105250A Division KR102134853B1 (en) 2019-08-27 2019-08-27 Data decryption method by receiving user consent
KR1020190105248A Division KR102134852B1 (en) 2019-08-27 2019-08-27 Data reconstruction method using a combination of partitioned data
KR1020190105252A Division KR102134854B1 (en) 2019-08-27 2019-08-27 Blockchain storage method of partitioned data
KR1020190105240A Division KR102134848B1 (en) 2019-08-27 2019-08-27 Method for encrypting data using individual encryption key
KR1020190105246A Division KR102134851B1 (en) 2019-08-27 2019-08-27 Data decryption method using request validation
KR1020190105239A Division KR102134847B1 (en) 2019-08-27 2019-08-27 Method for shuffling and inverse transforming split data
KR1020190105245A Division KR102134850B1 (en) 2019-08-27 2019-08-27 Data transmission method using data segmentation
KR1020190105244A Division KR102134849B1 (en) 2019-08-27 2019-08-27 Method for encrypting data according to data sharing using by changing encryption key

Publications (1)

Publication Number Publication Date
KR102023038B1 true KR102023038B1 (en) 2019-09-19

Family

ID=68067673

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190015227A KR102023038B1 (en) 2019-02-08 2019-02-08 Data security methods and systems

Country Status (1)

Country Link
KR (1) KR102023038B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114500035A (en) * 2022-01-24 2022-05-13 杭州天宽科技有限公司 Data encryption system based on service data sharing cloud platform

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004171207A (en) * 2002-11-19 2004-06-17 Nec Corp Data protection/storage method and server
KR20130022613A (en) * 2011-08-25 2013-03-07 주식회사 팬택 Apparatus and method for securing contents in cloud computing
KR101252549B1 (en) 2008-11-21 2013-04-08 한국전자통신연구원 Method for safely distributing encoding/decoding programs and a symmetric key and Devices for partitioning and injecting them for safe distribution in a security domain environment
JP2015517685A (en) * 2012-05-29 2015-06-22 ▲ホア▼▲ウェイ▼技術有限公司 Method, apparatus and system for implementing media data processing
KR20190010251A (en) * 2017-07-21 2019-01-30 건국대학교 산학협력단 A method and apparatus of lpes for security enhancement in cloud storage transport phase

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004171207A (en) * 2002-11-19 2004-06-17 Nec Corp Data protection/storage method and server
KR101252549B1 (en) 2008-11-21 2013-04-08 한국전자통신연구원 Method for safely distributing encoding/decoding programs and a symmetric key and Devices for partitioning and injecting them for safe distribution in a security domain environment
KR20130022613A (en) * 2011-08-25 2013-03-07 주식회사 팬택 Apparatus and method for securing contents in cloud computing
JP2015517685A (en) * 2012-05-29 2015-06-22 ▲ホア▼▲ウェイ▼技術有限公司 Method, apparatus and system for implementing media data processing
KR20190010251A (en) * 2017-07-21 2019-01-30 건국대학교 산학협력단 A method and apparatus of lpes for security enhancement in cloud storage transport phase

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114500035A (en) * 2022-01-24 2022-05-13 杭州天宽科技有限公司 Data encryption system based on service data sharing cloud platform
CN114500035B (en) * 2022-01-24 2023-06-23 杭州天宽科技有限公司 Data encryption system based on service data sharing cloud platform

Similar Documents

Publication Publication Date Title
CN109144961B (en) Authorization file sharing method and device
US9171145B2 (en) Protecting cryptographic secrets using file system attributes
EP2267628B1 (en) Token passing technique for media playback devices
US9680809B2 (en) Secure data storage on a cloud environment
CN108259171B (en) Shader file protection method and device
CN110366839B (en) Computer-implemented system and method
CN111460453A (en) Machine learning training method, controller, device, server, terminal and medium
US10122713B2 (en) Method and device for the secure authentication and execution of programs
CN110881063A (en) Storage method, device, equipment and medium of private data
EP3785420A1 (en) Multi-decentralized private blockchains network
CN109672521B (en) Security storage system and method based on national encryption engine
CN109040134B (en) Information encryption design method and related device
CN112148755A (en) Private data access method, device, equipment and system based on secret sharing
US11394698B2 (en) Multi-party computation (MPC) based authorization
CN109033808B (en) Game experience method and account server
KR102500497B1 (en) Apparatus for performing access control based on blockchain and method thereof
CN117240625B (en) Tamper-resistant data processing method and device and electronic equipment
CN105468940A (en) Software protection method and apparatus
US11509469B2 (en) Methods and systems for password recovery based on user location
CN113572604A (en) Method, device and system for sending secret key and electronic equipment
KR102023038B1 (en) Data security methods and systems
CN113726515B (en) UKEY-based key processing method, storage medium and electronic device
CN108256343B (en) Encryption method and device and decryption method and device of Shader file
CN108256342B (en) Encryption method and device and decryption method and device of Shader file
KR102134851B1 (en) Data decryption method using request validation

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A107 Divisional application of patent
GRNT Written decision to grant